Module

rVitals

Path

C:\CPRS\CPRS30\Vitals\rVitals.pas

Last Modified

7/15/2014 3:26:44 PM

Comments

Modifed: 9/18/98
By: Robert Bott
Location: ISL
Description of Mod:
  Changed function ValAndStoreVitals to return the string indicating the value
   that failed.


 REMOVE AFTER UNIT IS DEBUGGED

Initialization Code

initialization

Finalization Code

finalization
  KillObj(@uVitalList);

end.

Procedures

Name Owner Declaration Scope Comments
GetLastVital - Procedure GetLastVital(Dest: TStrings; const PatientID: string); Interfaced
DFN*
DFN*
GetVitalFromNoteIEN - Procedure GetVitalFromNoteIEN(Dest: TStrings; const PatientID: string; NoteIEN: Integer); Interfaced
DFN*
DFN*
GetVitalsFromEncDateTime - Procedure GetVitalsFromEncDateTime(Dest: TStrings; const PatientID: string; datetime: TFMDateTime); Interfaced
DFN*
DFN*
LoadUserVitalPreferences - procedure LoadUserVitalPreferences; Interfaced -
SaveUserVitalPreferences - procedure SaveUserVitalPreferences; Interfaced -
SaveVitals - procedure SaveVitals(VitalList: TStringList); Interfaced -

Functions

Name Owner Declaration Scope Comments
GetVList - function GetVList(Loc: integer): TStringList; Interfaced -
ValAndStoreVitals - function ValAndStoreVitals(VitalList: TStringList):string; Interfaced
9/18/98
Modifed: 9/18/98
By: Robert Bott
Location: ISL
Description of Mod:
  Changed function ValAndStoreVitals to return the string indicating the value
   that failed.
VerifyVital - function VerifyVital(typ,rte,unt: String):boolean; Interfaced -

Global Variables

Name Type Declaration Comments
uLastVitalLoc Integer uLastVitalLoc: integer = -1; -
uOldVitalsMetric Boolean uOldVitalsMetric: boolean = FALSE; -
uOldVitCVPmmHg Boolean uOldVitCVPmmHg: boolean = FALSE; -
uVitalList TStringList uVitalList: TStringList = nil; -
uVitalsMetric Boolean uVitalsMetric: boolean = FALSE; -
uVitCVPmmHg Boolean uVitCVPmmHg: boolean = FALSE; -


Module Source

1     ////////////////////////////////////////////////////////////////////////////////
2     //Modifed: 9/18/98
3     //By: Robert Bott
4     //Location: ISL
5     //Description of Mod:
6     //  Changed function ValAndStoreVitals to return the string indicating the value
7     //   that failed.
8     ////////////////////////////////////////////////////////////////////////////////
9     
10    unit rVitals;
11    
12    {$OPTIMIZATION OFF}                              // REMOVE AFTER UNIT IS DEBUGGED
13    
14    interface
15    
16    uses SysUtils, Classes, ORNet, ORFn;
17    
18    procedure SaveVitals(VitalList: TStringList);
19    Procedure GetLastVital(Dest: TStrings; const PatientID: string);  //*DFN*
20    function VerifyVital(typ,rte,unt: String):boolean;
21    function ValAndStoreVitals(VitalList: TStringList):string;      //9/18/98
22    Procedure GetVitalFromNoteIEN(Dest: TStrings; const PatientID: string; NoteIEN: Integer);  //*DFN*
23    Procedure GetVitalsFromEncDateTime(Dest: TStrings; const PatientID: string; datetime: TFMDateTime);  //*DFN*
24    procedure LoadUserVitalPreferences;
25    procedure SaveUserVitalPreferences;
26    function GetVList(Loc: integer): TStringList;
27    
28    var
29      uVitalsMetric: boolean = FALSE;
30      uVitCVPmmHg: boolean = FALSE;
31    
32    implementation
33    
34    var
35      uOldVitalsMetric: boolean = FALSE;
36      uOldVitCVPmmHg: boolean = FALSE;
37      uVitalList: TStringList = nil;
38      uLastVitalLoc: integer = -1;
39    
40    procedure SaveVitals(VitalList: TStringList);
41    begin
42      CallV('ORWVITALS SAVE', [VitalList]);
43    end;
44    
45    procedure GetLastVital(Dest: TStrings; const PatientID: string);  //*DFN*
46    var
47      IDString: String;
48    begin
49      IDString := patientid;  //*DFN*
50      CallV('ORQQVI VITALS', [IDString]);
51      FastAssign(RPCBrokerV.Results, Dest);
52    end;
53    
54    function VerifyVital(typ,rte,unt: String):boolean;
55    begin
56      result := False;
57      CallV('ORQQVI2 VITALS RATE CHECK',[typ,rte,unt]);
58      if RPCBrokerV.results[0] = '1' then
59        result := True;
60    end;
61    
62    
63    ////////////////////////////////////////////////////////////////////////////////
64    //Modifed: 9/18/98
65    //By: Robert Bott
66    //Location: ISL
67    //Description of Mod:
68    //  Changed function ValAndStoreVitals to return the string indicating the value
69    //   that failed.
70    ////////////////////////////////////////////////////////////////////////////////
71    function ValAndStoreVitals(VitalList: TStringList):string;
72    begin
73      CallV('ORQQVI2 VITALS VAL & STORE',[VitalList]);
74      if RPCBrokerV.results[0] >= '0' then
75        result := 'True'  //stored ok
76      else
77        result := Piece(RPCBrokerV.results[1],U,2) + ': '+Piece(RPCBrokerV.results[1],U,3)+' Value: '+
78          Piece(RPCBrokerV.results[1],U,4);
79    end;
80    
81    Procedure GetVitalFromNoteIEN(Dest: TStrings; const PatientID: string; NoteIEN: Integer);  //*DFN*
82    var
83      NoteIENStr,IDString: String;
84    begin
85      IDString := patientid;  //*DFN*
86      NoteIENStr := IntToStr(NoteIen);
87      CallV('ORQQVI NOTEVIT', [IDString, NoteIENStr]);
88      FastAssign(RPCBrokerV.Results, Dest);
89    end;
90    
91    Procedure GetVitalsFromEncDateTime(Dest: TStrings; const PatientID: string; DateTime: TFMDateTime);  //*DFN*
92    var
93      EncDate,IDString: String;
94    begin
95      IDString := patientid;  //*DFN*
96      EncDate := FloatToStr(DateTime);
97      CallV('ORQQVI VITALS', [IDString, EncDate]);
98      FastAssign(RPCBrokerV.Results, Dest);
99    end;
100   
101   procedure LoadUserVitalPreferences;
102   var
103     Tmp: string;
104   begin
105     Tmp := sCallV('ORQQVI3 GETVPREF', []);
106     uVitalsMetric := (Piece(Tmp,U,1) = '1');
107     uVitCVPmmHg   := (Piece(Tmp,U,2) = '1');
108     uOldVitalsMetric := uVitalsMetric;
109     uOldVitCVPmmHg := uVitCVPmmHg;
110   end;
111   
112   procedure SaveUserVitalPreferences;
113   var
114     P1, P2: string;
115   
116   begin
117     // Don't same same value loaded, since saving is at user level,
118     //                     and loading may be at a different level
119     if(uOldVitalsMetric = uVitalsMetric) then P1 := '' else P1 := BOOLCHAR[uVitalsMetric];
120     if(uOldVitCVPmmHg   = uVitCVPmmHg)   then P2 := '' else P2 := BOOLCHAR[uVitCVPmmHg];
121     CallV('ORQQVI3 SETVPREF', [P1, P2]);
122   end;
123   
124   function GetVList(Loc: integer): TStringList;
125   var
126     GetList: boolean;
127   
128   begin
129     GetList := TRUE;
130     if not assigned(uVitalList) then
131       uVitalList := TStringList.Create
132     else
133     if Loc = uLastVitalLoc then
134       GetList := FALSE;
135     if(GetList) then
136     begin
137       uLastVitalLoc := Loc;
138       CallV('ORQQVI3 GETVLIST', [Loc]);
139       if(RPCBrokerV.Results.Count > 0) then
140         RPCBrokerV.Results.Delete(0);
141       FastAssign(RPCBrokerV.Results, uVitalList);
142     end;
143     Result := uVitalList;
144   end;
145   
146   initialization
147   
148   finalization
149     KillObj(@uVitalList);
150   
151   end.

Module Calls (2 levels)

-

Module Called-By (2 levels)


               rVitals
                uPCE┤ 
        uReminders┤ │ 
              rPCE┤ │ 
   fEncounterFrame┤ │ 
        fVisitType┤ │ 
     mVisitRelated┤ │ 
        fDiagnoses┤ │ 
      fPCEBaseMain┤ │ 
        fProcedure┤ │ 
     fImmunization┤ │ 
         fSkinTest┤ │ 
        fPatientEd┤ │ 
     fHealthFactor┤ │ 
             fExam┤ │ 
            fNotes┤ │ 
         fConsults┤ │ 
      fPCEProvider┤ │ 
           fDCSumm┤ │ 
   fReminderDialog┤ │ 
          fSurgery┤ │ 
      fDCSummProps┤ │ 
              fGAF┤ │ 
    fRemCoverSheet┤ │ 
          fPCEEdit┘ │ 
  fEncounterFrame...┤ 
          fEncVitals┤ 
fEncounterFrame...┘ │ 
             uVitals┤ 
            fFrame┤ │ 
     uReminders...┤ │ 
           uPCE...┤ │ 
     fEncVitals...┤ │ 
           fVitals┤ │ 
fReminderDialog...┤ │ 
              fvit┘ │ 
  fReminderDialog...┤ 
             fvit...┘