我正在使用 Django Viewflow,就像没有 gui 的流引擎一样。任何人都可以发布一个以编程方式创建流程和流程管理的示例吗?我不明白如何在没有前端的情况下完全从 django 代码(例如来自测试类)管理流程。我需要先创建一个流实例吗?我如何知道我必须执行哪项任务以及如何执行它?我只需要使用没有 gui 的视图流
提前致谢!
我的应用程序/models.py
class MedicalParameters(models.Model):
# medical parameters
pas = models.IntegerField(verbose_name="Pressione Sistolica")
pad = models.IntegerField(verbose_name="Pressione Diastolica")
fc = models.IntegerField(verbose_name="Frequenza Cardiaca")
class Triage(models.Model):
date = models.DateTimeField(auto_now=True)
patient_id = models.CharField(max_length=20)
first_name = models.CharField(max_length=150)
last_name = models.CharField(max_length=150)
birth_date = models.DateField(auto_now=False)
sex = models.CharField(max_length=1, choices=SEX, default='M')
# Medical Parameters
parameters = models.ForeignKey(MedicalParameters, blank=True, null=True,
on_delete=models.PROTECT)
class TriageProcess(Process):
triage = models.ForeignKey(Triage, blank=True, null=True, on_delete=models.CASCADE)
class Meta:
verbose_name_plural = 'Triage process'
我的应用程序/flow.py
class TriageFlow(Flow):
process_class = TriageProcess
process_title = 'Processo di Triage'
process_description = 'Processo di Triage'
summary_template = """
Triage di {{ process.triage.first_name }} {{ process.triage.last_name }}
"""
start = (
flow.Start(
views.StartView,
task_title="Nuovo Triage",
task_description="Inizia Triege"
).Permission(
auto_create=True
).Next(this.register_measures)
)
register_measures = (
flow.View(
views.MeasuresView,
# fields=["parameters"],
task_description="Acquisisci Misure",
task_title='Misure da Multiparametrico'
)
.Assign(lambda act: act.process.created_by)
.Next(this.choose_capitolo)
)
我的应用程序/view.py
class StartView(StartFlowMixin, generic.UpdateView):
form_class = TriageForm
layout = Layout(
Row('patient_id'),
Fieldset('Patient Details',
Row('first_name', 'last_name', 'birth_date'),
Row('sex',
# 'age'
)
)
)
def get_object(self):
return self.activation.process.triage
def activation_done(self, form):
triage = form.save()
self.activation.process.triage = triage
self.activation.process.triage.color = COLOR_VALUE.BIANCO
super(StartView, self).activation_done(form)
# super(StartView, self).activation_done(form)
class MeasuresView(FlowMixin, generic.UpdateView):
form_class = MedicalParametersForm
layout = Layout(
Fieldset('Temperatura ( C )',
Row('temp')),
Fieldset('Pressione',
Row('pas'),
Row('pad')),
Fieldset('Frequenza',
Row('fc'),
Row('fr'),
Row('fio2')),
Fieldset("Analisi Cliniche",
Row('so2'),
Row('ph')),
Fieldset('Emogas',
Row('pao2'),
Row('paco2'),
Row('hco3')),
Fieldset("Indici",
Row('gcs')
# Row('shock')
))
def get_object(self):
return self.activation.process.triage.parameters
def activation_done(self, form):
_measures = form.save()
self.activation.process.triage.parameters = _measures
if not self.activation.process.triage.parameters.fc is None \
and not self.activation.process.triage.parameters.pas is None:
self.activation.process.triage.parameters.shock = self.activation.process.triage.parameters.fc / self.activation.process.triage.parameters.pas
self.activation.process.triage.parameters.save()
color = _measures.calculate_color()
self.activation.process.triage.color = color
self.activation.process.triage.rivalutazione = None
self.activation.process.triage.save()
super(MeasuresView, self).activation_done(form)