Produced by Araxis Merge on 7/13/2017 1:08:07 PM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
| # | Location | File | Last Modified |
|---|---|---|---|
| 1 | v31B.zip\v31B\377\OR_30_377V235_SRC\Encounter | fEncounterFrame.pas | Wed May 17 14:56:10 2017 UTC |
| 2 | v31B.zip\v31B\377\OR_30_377V235_SRC\Encounter | fEncounterFrame.pas | Thu Jul 13 14:44:55 2017 UTC |
| Description | Between Files 1 and 2 |
|
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 2 | 1686 |
| Changed | 1 | 2 |
| Inserted | 0 | 0 |
| Removed | 0 | 0 |
| Whitespace | |
|---|---|
| Character case | Differences in character case are significant |
| Line endings | Differences in line endings (CR and LF characters) are ignored |
| CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
| 1 | unit fEnco unterFrame ; | |
| 2 | ||
| 3 | interface | |
| 4 | ||
| 5 | uses | |
| 6 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dia logs, | |
| 7 | Tabs, Co mCtrls, Ex tCtrls, Me nus, StdCt rls, Butto ns, fPCEBa se, | |
| 8 | fVisitTy pe, fDiagn oses, fPro cedure, fI mmunizatio n, fSkinTe st, fPatie ntEd, | |
| 9 | fHealthF actor, fEx am, uPCE, rPCE, rTIU , ORCtrls, ORFn, fEn cVitals, r vitals, fB ase508Form , | |
| 10 | VA508Acc essibility Manager; | |
| 11 | ||
| 12 | const | |
| 13 | //tab na mes | |
| 14 | CT_Visit Nm = 'Visi t Type'; | |
| 15 | CT_DiagN m = 'Diag noses'; | |
| 16 | CT_ProcN m = 'Proc edures'; | |
| 17 | CT_ImmNm = 'Immu nizations' ; | |
| 18 | CT_SkinN m = 'Skin Tests'; | |
| 19 | CT_PedNm = 'Pati ent Ed'; | |
| 20 | CT_HlthN m = 'Heal th Factors '; | |
| 21 | CT_XamNm = 'Exam s'; | |
| 22 | CT_VitNm = 'Vita ls'; | |
| 23 | CT_GAFNm = 'GAF' ; | |
| 24 | ||
| 25 | //number s assigned to tabs t o make cha nges easie r | |
| 26 | //they m ust be seq uential | |
| 27 | CT_NOPAG E = -1; | |
| 28 | CT_UNKNO WN = 0; | |
| 29 | CT_VISIT TYPE = 1; CT_FIR ST = 1; | |
| 30 | CT_DIAGN OSES = 2; | |
| 31 | CT_PROCE DURES = 3; | |
| 32 | CT_IMMUN IZATIONS = 4; | |
| 33 | CT_SKINT ESTS = 5; | |
| 34 | CT_PATIE NTED = 6; | |
| 35 | CT_HEALT HFACTORS = 7; | |
| 36 | CT_EXAMS = 8; | |
| 37 | CT_VITAL S = 9; | |
| 38 | CT_GAF = 10; CT_LA ST = 10; | |
| 39 | ||
| 40 | NUM_TABS = 3 ; | |
| 41 | TAG_VTYP E = 1 0; | |
| 42 | TAG_DIAG = 2 0; | |
| 43 | TAG_PROC = 3 0; | |
| 44 | TAG_IMMU NIZ = 4 0; | |
| 45 | TAG_SKIN = 5 0; | |
| 46 | TAG_PED = 6 0; | |
| 47 | TAG_HF = 7 0; | |
| 48 | TAG_XAM = 8 0; | |
| 49 | TAG_TRT = 9 0; | |
| 50 | ||
| 51 | TX_NOSEC TION = '-1 ^No sectio ns found'; | |
| 52 | TX_PROV_ REQ = 'A p rimary enc ounter pro vider must be select ed before encounter data can' + CRLF + | |
| 53 | 'be saved. Se lect the P rimary Enc ounter Pro vider on t he VISIT T YPE tab.' + CRLF + | |
| 54 | 'Oth erwise, pr ess <Cance l> to quit without s aving data .'; | |
| 55 | ||
| 56 | TC_PROV_ REQ = 'Mis sing Prima ry Provide r for Enco unter'; | |
| 57 | ||
| 58 | type | |
| 59 | TfrmEnco unterFrame = class(T frmBase508 Form) | |
| 60 | Status Bar1: TSta tusBar; | |
| 61 | pnlPag e: TPanel; | |
| 62 | Bevel1 : TBevel; | |
| 63 | TabCon trol: TTab Control; | |
| 64 | ||
| 65 | proced ure tabPag eChange(Se nder: TObj ect; NewTa b: Integer ; | |
| 66 | var AllowChang e: Boolean ); | |
| 67 | proced ure FormRe size(Sende r: TObject ); | |
| 68 | proced ure Sectio nClick(Sen der: TObje ct); | |
| 69 | proced ure FormDe stroy(Send er: TObjec t); | |
| 70 | proced ure FormCr eate(Sende r: TObject ); | |
| 71 | proced ure FormCl oseQuery(S ender: TOb ject; var CanClose: Boolean); | |
| 72 | proced ure TabCon trolChange (Sender: T Object); | |
| 73 | proced ure TabCon trolChangi ng(Sender: TObject; | |
| 74 | var AllowChang e: Boolean ); | |
| 75 | proced ure FormKe yDown(Send er: TObjec t; var Key : Word; | |
| 76 | Shif t: TShiftS tate); | |
| 77 | proced ure FormCl ose(Sender : TObject; var Actio n: TCloseA ction); | |
| 78 | proced ure FormCa nResize(Se nder: TObj ect; var N ewWidth, | |
| 79 | NewH eight: Int eger; var Resize: Bo olean); | |
| 80 | proced ure FormSh ow(Sender: TObject); | |
| 81 | proced ure TabCon trolEnter( Sender: TO bject); | |
| 82 | ||
| 83 | private | |
| 84 | FAutoS ave: boole an; | |
| 85 | FSaveN eeded: boo lean; | |
| 86 | FChang eSource: I nteger; | |
| 87 | FCance l: Boolea n; //Indic ates the c ancel butt on has bee n pressed; | |
| 88 | FAbort : boolean; // indica tes that n either OK or Cancel has been p ressed | |
| 89 | FormLi st: TStrin gList; // Holds the types of a ny forms t hat will b e used | |
| 90 | // in the fra me. They must be av ailable at compile t ime | |
| 91 | FLastP age: TfrmP CEBase; | |
| 92 | FGiveM ultiTabMes sage: bool ean; | |
| 93 | proced ure Create ChildForms (Sender: T Object; Lo cation: in teger); | |
| 94 | proced ure SynchP CEData; | |
| 95 | proced ure Switch ToPage(New Form: Tfrm PCEBase); //was tf rmPage | |
| 96 | functi on PageIDT oForm(Page ID: Intege r): TfrmPC EBase; | |
| 97 | functi on PageIDT oTab(PageI D: Integer ): string; | |
| 98 | proced ure LoadFo rmList(Loc ation: int eger); | |
| 99 | proced ure Create Forms; | |
| 100 | proced ure AddTab s; | |
| 101 | functi on FormLis tContains( item: stri ng): Boole an; | |
| 102 | proced ure SendDa ta; | |
| 103 | proced ure Update Encounter( PCE: TPCED ata); | |
| 104 | proced ure SetFor mFonts; | |
| 105 | ||
| 106 | public | |
| 107 | proced ure Select Tab(NewTab Name: stri ng); | |
| 108 | proper ty ChangeS ource: Integer re ad FChange Source; | |
| 109 | proper ty Forms: tstringlis t read For mList; | |
| 110 | proper ty Cancel: Boolean re ad FCancel write FCa ncel; | |
| 111 | proper ty Abort: B oolean rea d FAbort w rite FAbor t; | |
| 112 | end; | |
| 113 | ||
| 114 | var | |
| 115 | frmEncou nterFrame: TfrmEncou nterFrame; | |
| 116 | uSCCond: TSCCon ditions; | |
| 117 | uVisitTy pe: TPCEPr oc; // contain s info for visit typ e page | |
| 118 | uEncPCED ata: TPCED ata; | |
| 119 | uProvide rs: TPCEPr oviderList ; | |
| 120 | ||
| 121 | // Returns true if P CE data st ill needs to be save d - vitals /gaf are a lways save d | |
| 122 | function U pdatePCE(P CEData: TP CEData; Sa veOnExit: boolean = TRUE): boo lean; | |
| 123 | ||
| 124 | implementa tion | |
| 125 | ||
| 126 | uses | |
| 127 | uCore, | |
| 128 | fGAF, uC onst, | |
| 129 | rCore, f PCEProvide r, rMisc, VA508Acces sibilityRo uter, VAUt ils; | |
| 130 | ||
| 131 | {$R *.DFM} | |
| 132 | ||
| 133 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 134 | //Name: fu nction Tfr mEncounter Frame.Page IDToTab(Pa geID: Inte ger): Stri ng; | |
| 135 | //Created: Jan 1999 | |
| 136 | //By: Robe rt Bott | |
| 137 | //Location : ISL | |
| 138 | //Descript ion: retur ns the tab index tha t correspo nds to a g iven PageI D . | |
| 139 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 140 | function T frmEncount erFrame.Pa geIDToTab( PageID: In teger): St ring; | |
| 141 | begin | |
| 142 | result : = ''; | |
| 143 | case Pag eID of | |
| 144 | CT_NOP AGE: Result : = ''; | |
| 145 | CT_UNK NOWN: Result : = ''; | |
| 146 | CT_VIS ITTYPE: Result : = CT_Visit Nm; | |
| 147 | CT_DIA GNOSES: Result : = CT_DiagN m; | |
| 148 | CT_PRO CEDURES: Result : = CT_ProcN m; | |
| 149 | CT_IMM UNIZATIONS : Result : = CT_ImmNm ; | |
| 150 | CT_SKI NTESTS: Result : = CT_SkinN m; | |
| 151 | CT_PAT IENTED: Result : = CT_PedNm ; | |
| 152 | CT_HEA LTHFACTORS : Result : = CT_HlthN m; | |
| 153 | CT_EXA MS: Result : = CT_XamNm ; | |
| 154 | CT_VIT ALS: Result : = CT_VitNm ; | |
| 155 | CT_GAF : Result : = CT_GAFNm ; | |
| 156 | ||
| 157 | end; | |
| 158 | end; | |
| 159 | ||
| 160 | ||
| 161 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 162 | //Name: fu nction Tfr mEncounter Frame.Page IDToForm(P ageID: Int eger): Tfr mPCEBase; | |
| 163 | //Created: Jan 1999 | |
| 164 | //By: Robe rt Bott | |
| 165 | //Location : ISL | |
| 166 | //Descript ion: retur n the form name base d on the P ageID} | |
| 167 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 168 | function T frmEncount erFrame.Pa geIDToForm (PageID: I nteger): T frmPCEBase ; | |
| 169 | begin | |
| 170 | case Pag eID of | |
| 171 | CT_VIS ITTYPE: Result : = frmVisit Type; | |
| 172 | CT_DIA GNOSES: Result : = frmDiagn oses; | |
| 173 | CT_PRO CEDURES: Result : = frmProce dures; | |
| 174 | CT_IMM UNIZATIONS : Result : = frmImmun izations; | |
| 175 | CT_SKI NTESTS: Result : = frmSkinT ests; | |
| 176 | CT_PAT IENTED: Result : = frmPatie ntEd; | |
| 177 | CT_HEA LTHFACTORS : Result : = frmHealt hFactors; | |
| 178 | CT_EXA MS: Result : = frmExams ; | |
| 179 | CT_VIT ALS: Result : = frmEncVi tals; | |
| 180 | CT_GAF : Result : = frmGAF; | |
| 181 | else // not a vali d form | |
| 182 | result := frmPCE Base; | |
| 183 | end; | |
| 184 | end; | |
| 185 | ||
| 186 | ||
| 187 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 188 | //Name: pr ocedure Tf rmEncounte rFrame.Cre atChildFor ms(Sender: TObject); | |
| 189 | //Created: Jan 1999 | |
| 190 | //By: Robe rt Bott | |
| 191 | //Location : ISL | |
| 192 | //Descript ion: Finds out what pages to d isplay, ha s the page s and tabs created. | |
| 193 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 194 | procedure TfrmEncoun terFrame.C reateChild Forms(Send er: TObjec t; Locatio n: integer ); | |
| 195 | begin | |
| 196 | //load F ormList wi th a list of all for ms to disp lay. | |
| 197 | inherite d; | |
| 198 | LoadForm List(Locat ion); | |
| 199 | AddTabs; | |
| 200 | CreateFo rms; | |
| 201 | end; | |
| 202 | ||
| 203 | ||
| 204 | ||
| 205 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 206 | //Name: Tf rmEncounte rFrame.Loa dFormList; | |
| 207 | //Created: Jan 1999 | |
| 208 | //By: Robe rt Bott | |
| 209 | //Location : ISL | |
| 210 | //Descript ion: Loads Formlist with the f orms to cr eate, will be replac ed by RPC call. | |
| 211 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 212 | procedure TfrmEncoun terFrame.L oadFormLis t(Location : integer) ; | |
| 213 | begin | |
| 214 | //change this to a n RPC in R PCE.pas | |
| 215 | FormList .clear; | |
| 216 | FormList .add(CT_Vi sitNm); | |
| 217 | FormList .add(CT_Di agNm); | |
| 218 | FormList .add(CT_Pr ocNm); | |
| 219 | formList .add(CT_Vi tNm); | |
| 220 | formList .add(CT_Im mNm); | |
| 221 | formList .add(CT_Sk inNm); | |
| 222 | formList .add(CT_Pe dNm); | |
| 223 | formList .add(CT_Hl thNm); | |
| 224 | formList .add(CT_Xa mNm); | |
| 225 | if MHCli nic(Locati on) then | |
| 226 | formLi st.add(CT_ GAFNm); | |
| 227 | end; | |
| 228 | ||
| 229 | ||
| 230 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 231 | //Name: fu nction Tfr mEncounter Frame.Form ListContai ns(item: s tring): Bo olean; | |
| 232 | //Created: 12/06/98 | |
| 233 | //By: Robe rt Bott | |
| 234 | //Location : ISL | |
| 235 | //Descript ion: Retur ns a boole an value i ndicating if a given string ex ists in | |
| 236 | // the for mlist. | |
| 237 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 238 | function T frmEncount erFrame.Fo rmListCont ains(item: string): Boolean; | |
| 239 | begin | |
| 240 | result : = false; | |
| 241 | if (Form List.Index Of(item) < > -1 ) the n | |
| 242 | result := true; | |
| 243 | end; | |
| 244 | ||
| 245 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 246 | //Name: pr ocedure Tf rmEncounte rFrame.Cre ateForms; | |
| 247 | //Created: Jan 1999 | |
| 248 | //By: Robe rt Bott | |
| 249 | //Location : ISL | |
| 250 | //Descript ion: Crea tes all of the forms in the li st. | |
| 251 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 252 | procedure TfrmEncoun terFrame.C reateForms ; | |
| 253 | var | |
| 254 | i: integ er; | |
| 255 | begin | |
| 256 | //could this be pl aced in a loop using PagedIdTo Tab & Page IDToFOrm & ? | |
| 257 | ||
| 258 | if FormL istContain s(CT_Visit Nm) then | |
| 259 | frmVis itType := TfrmVisit Type.Creat eLinked(pn lPage); | |
| 260 | if FormL istContain s(CT_DiagN m) then | |
| 261 | frmDia gnoses := TfrmDiagn oses.Creat eLinked(pn lPage); | |
| 262 | if FormL istContain s(CT_ProcN m) then | |
| 263 | frmPro cedures := TfrmProce dures.Crea teLinked(p nlPage); | |
| 264 | if FormL istContain s(CT_VitNm ) then | |
| 265 | frmEnc Vitals := TfrmEncVit als.Create Linked(pnl Page); | |
| 266 | if FormL istContain s(CT_ImmNm ) then | |
| 267 | frmImm unizations := TfrmIm munization s.CreateLi nked(pnlPa ge); | |
| 268 | if FormL istContain s(CT_SkinN m) then | |
| 269 | frmSki nTests := TfrmSkinTe sts.Create Linked(pnl Page); | |
| 270 | if FormL istContain s(CT_PedNm ) then | |
| 271 | frmPat ientEd := TfrmPatien tEd.Create Linked(pnl Page); | |
| 272 | if FormL istContain s(CT_HlthN m) then | |
| 273 | frmHea lthFactors := TfrmHE althFactor s.CreateLi nked(pnlPa ge); | |
| 274 | if FormL istContain s(CT_XamNm ) then | |
| 275 | frmExa ms := Tfrm Exams.Crea teLinked(p nlPage); | |
| 276 | if FormL istContain s(CT_GAFNm ) then | |
| 277 | frmGAF := TfrmGA F.CreateLi nked(pnlPa ge); | |
| 278 | //must s witch base d on capti on, as all tabs may not be pre sent. | |
| 279 | for i := CT_FIRST to CT_LAST do | |
| 280 | begin | |
| 281 | if For mlist.Inde xOf(PageId ToTab(i)) <> -1 then | |
| 282 | Page IDToForm(i ).Visible := (Formli st.IndexOf (PageIdToT ab(i)) = 0 ); | |
| 283 | end; | |
| 284 | end; | |
| 285 | ||
| 286 | ||
| 287 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 288 | //Name: Tf rmEncounte rFrame.Swi tchToPage( NewForm: t frmPCEBase ); | |
| 289 | //Created: Jan 1999 | |
| 290 | //By: Robe rt Bott | |
| 291 | //Location : ISL | |
| 292 | //Descript ion: Bring s the sele cted page to the fro nt for dis play. | |
| 293 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 294 | procedure TfrmEncoun terFrame.S witchToPag e(NewForm: tfrmPCEBa se);// was TfrmPage) ; | |
| 295 | { unmerge/ merge menu s, bring p age to top of z-orde r, call fo rm-specifi c OnDispla y code } | |
| 296 | begin | |
| 297 | if (NewF orm = nil) or (FLast Page = New Form) then Exit; | |
| 298 | if Assig ned(FLastP age) then | |
| 299 | FLastP age.Hide; | |
| 300 | FLastPag e := NewFo rm; | |
| 301 | // KeyPre view := (N ewForm = f rmEncVital s); | |
| 302 | NewForm. DisplayPag e; // thi s calls Br ingToFront for the f orm | |
| 303 | end; | |
| 304 | ||
| 305 | ||
| 306 | ||
| 307 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 308 | //Name: pr ocedure Tf rmEncounte rFrame.tab PageChange (Sender: T Object; Ne wTab: Inte ger; var A llowChange : Boolean) ; | |
| 309 | //Created: Jan 1999 | |
| 310 | //By: Robe rt Bott | |
| 311 | //Location : ISL | |
| 312 | //Descript ion: Finds the page, and calls SwithToPa ge to disp lay it. | |
| 313 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 314 | procedure TfrmEncoun terFrame.t abPageChan ge(Sender: TObject; NewTab: In teger; var AllowChan ge: Boolea n); | |
| 315 | { switches to form l inked to N ewTab } | |
| 316 | var | |
| 317 | i: integ er; | |
| 318 | begin | |
| 319 | //must swi tch based on caption , as all t abs may no t be prese nt. | |
| 320 | for i := C T_FIRST to CT_LAST d o | |
| 321 | begin | |
| 322 | With For mlist do | |
| 323 | if New Tab = Inde xOf(PageId ToTab(i)) then | |
| 324 | begin | |
| 325 | Page IDToForm(i ).show; | |
| 326 | Swit chToPage(P ageIDToFor m(i)); | |
| 327 | end; | |
| 328 | end; | |
| 329 | end; | |
| 330 | ||
| 331 | { Resize a nd Font-Ch ange proce dures ---- ---------- ---------- ---------- ---------- ---------- --- } | |
| 332 | ||
| 333 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 334 | //Name: pr ocedure Tf rmEncounte rFrame.For mResize(Se nder: TObj ect); | |
| 335 | //Created: Jan 1999 | |
| 336 | //By: Robe rt Bott | |
| 337 | //Location : ISL | |
| 338 | //Descript ion: Resiz es all win dows when parent cha nges. | |
| 339 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 340 | procedure TfrmEncoun terFrame.F ormResize( Sender: TO bject); | |
| 341 | var | |
| 342 | i: integ er; | |
| 343 | begin | |
| 344 | for i := CT_FIRST t o CT_LAST do | |
| 345 | if (For mList.Inde xOf(PageId ToTab(i)) <> -1) the n | |
| 346 | MoveW indow(Page IdToForm(i ).Handle, 0, 0, pnlP age.Client Width, pnl page.Clien tHeight, t rue); | |
| 347 | self.rep aint; | |
| 348 | end; | |
| 349 | ||
| 350 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 351 | //Name: pr ocedure Tf rmEncounte rFrame.Add Tabs; | |
| 352 | //Created: Jan 1999 | |
| 353 | //By: Robe rt Bott | |
| 354 | //Location : ISL | |
| 355 | //Descript ion: adds a tab for each page that will be display ed | |
| 356 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 357 | procedure TfrmEncoun terFrame.A ddTabs; | |
| 358 | ||
| 359 | var | |
| 360 | i: integ er; | |
| 361 | begin | |
| 362 | TabContr ol.Tabs.Cl ear; | |
| 363 | for I := 0 to (For mlist.coun t - 1) do | |
| 364 | TabCon trol.Tabs. Add(Formli st.Strings [i]); | |
| 365 | end; | |
| 366 | ||
| 367 | ||
| 368 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 369 | //Name: pr ocedure Up datePCE(PC EData: TPC EData); | |
| 370 | //Created: Jan 1999 | |
| 371 | //By: Robe rt Bott | |
| 372 | //Location : ISL | |
| 373 | //Descript ion: The m ain call t o open the encounter frame and capture e ncounter | |
| 374 | // informa tion. | |
| 375 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 376 | function U pdatePCE(P CEData: TP CEData; Sa veOnExit: boolean = TRUE): boo lean; | |
| 377 | var | |
| 378 | // FontHe ight, | |
| 379 | // FontWi dth: Integ er; | |
| 380 | AUser: s tring; | |
| 381 | ||
| 382 | begin | |
| 383 | frmEncou nterFrame := TfrmEnc ounterFram e.Create(A pplication ); | |
| 384 | try | |
| 385 | frmEnc ounterFram e.FAutoSav e := SaveO nExit; | |
| 386 | ||
| 387 | uEncPC EData := P CEData; | |
| 388 | if(uEn cPCEData.E mpty and ( (uEncPCEDa ta.Locatio n = 0) or (uEncPCEDa ta.VisitDa teTime = 0 )) and | |
| 389 | (not Encounter .NeedVisit )) then | |
| 390 | uEnc PCEData.Us eEncounter := TRUE; | |
| 391 | frmEnc ounterFram e.Caption := 'Encoun ter Form f or ' + Ext ernalName( uEncPCEDat a.Location , 44) + | |
| 392 | ' (' + FormatFM DateTime(' mmm dd,yyy y@hh:nn', uEncPCEDat a.VisitDat eTime) + ' )'; | |
| 393 | ||
| 394 | uProvi ders.Assig n(uEncPCED ata.Provid ers); | |
| 395 | SetDef aultProvid er(uProvid ers, uEncP CEData); | |
| 396 | AUser := IntToSt r(uProvide rs.Pending IEN(FALSE) ); | |
| 397 | if(AUs er <> '0') and (uPro viders.Ind exOfProvid er(AUser) < 0) and | |
| 398 | Aut oCheckout( uEncPCEDat a.Location ) then | |
| 399 | uPro viders.Add Provider(A User, uPro viders.Pen dingName(F ALSE), FAL SE); | |
| 400 | ||
| 401 | frmEnc ounterFram e.CreateCh ildForms(f rmEncounte rFrame, PC EData.Loca tion); | |
| 402 | SetFor mPosition( frmEncount erFrame); | |
| 403 | Resize AnchoredFo rmToFont(f rmEncounte rFrame); | |
| 404 | //SetF ormPositio n(frmEncou nterFrame) ; | |
| 405 | ||
| 406 | with f rmEncounte rFrame do | |
| 407 | begin | |
| 408 | SetR PCEncLocat ion(PCEDat a.Location ); | |
| 409 | Sync hPCEData; | |
| 410 | TabC ontrol.Tab index := 0 ; | |
| 411 | TabC ontrolChan ge(TabCont rol); | |
| 412 | ||
| 413 | Show Modal; | |
| 414 | Resu lt := FSav eNeeded; | |
| 415 | end; | |
| 416 | finally | |
| 417 | // frm EncounterF rame.Free; v22.11 (JD and SM ) | |
| 418 | frmEnc ounterFram e.Release; | |
| 419 | //frmE ncounterFr ame := nil ; access violation source? r emoved 7/2 8/03 RV | |
| 420 | end; | |
| 421 | end; | |
| 422 | ||
| 423 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 424 | //Name: Tf rmEncounte rFrame.Sec tionClick( Sender: TO bject); | |
| 425 | //Created: Jan 1999 | |
| 426 | //By: Robe rt Bott | |
| 427 | //Location : ISL | |
| 428 | //Descript ion: Call the proced ure apropr iate for t he selecte d tab | |
| 429 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 430 | procedure TfrmEncoun terFrame.S ectionClic k(Sender: TObject); | |
| 431 | begin | |
| 432 | with Sen der as TLi stBox do c ase Tag of | |
| 433 | TAG_VTYP E: if Fo rmListCont ains(CT_Vi sitNm) the n | |
| 434 | begin | |
| 435 | wit h frmVisit Type do | |
| 436 | l stVTypeSec tionClick( Sender); | |
| 437 | end; | |
| 438 | end; | |
| 439 | end; | |
| 440 | ||
| 441 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 442 | //Name: pr ocedure Tf rmEncounte rFrame.Syn chPCEData; | |
| 443 | //Created: Jan 1999 | |
| 444 | //By: Robe rt Bott | |
| 445 | //Location : ISL | |
| 446 | //Descript ion: Synch ronize any existing PCE data w ith what i s displaye d in the f orm. | |
| 447 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 448 | procedure TfrmEncoun terFrame.S ynchPCEDat a; | |
| 449 | ||
| 450 | procedur e InitList (AListBox: TORListBo x); | |
| 451 | var | |
| 452 | DoClic k: boolean ; | |
| 453 | ||
| 454 | begin | |
| 455 | with A ListBox do | |
| 456 | begin | |
| 457 | DoCl ick := TRU E; | |
| 458 | case Tag of | |
| 459 | TA G_VTYPE: begin | |
| 460 | if Form ListContai ns(CT_Visi tNm) then | |
| 461 | List VisitTypeS ections(It ems); | |
| 462 | DoClick := AutoSe lectVisit( PCERPCEncL ocation); | |
| 463 | end; | |
| 464 | end; | |
| 465 | if I tems.Count > 0 then | |
| 466 | begi n | |
| 467 | if DoClick t hen | |
| 468 | be gin | |
| 469 | ItemIndex := 0; | |
| 470 | SectionCli ck(AListBo x); | |
| 471 | en d; | |
| 472 | end | |
| 473 | else Items.Add (TX_NOSECT ION); | |
| 474 | end; | |
| 475 | end; | |
| 476 | ||
| 477 | begin | |
| 478 | if FormL istContain s(CT_Visit Nm) then | |
| 479 | with frm VisitType do | |
| 480 | begin | |
| 481 | Init List(frmVi sitType.ls tVTypeSect ion); // s et up Visi t Type pag e | |
| 482 | List SCDisabili ties(memSC Display.Li nes); | |
| 483 | uSCC ond := Eli gbleCondit ions; | |
| 484 | frmV isitType.f raVisitRel ated.InitA llow(uSCCo nd); | |
| 485 | end; | |
| 486 | with uEn cPCEData d o // load any existi ng data fr om PCEData | |
| 487 | begin | |
| 488 | if For mListConta ins(CT_Vis itNm) then | |
| 489 | frmV isitType.f raVisitRel ated.InitR elated(uEn cPCEData); | |
| 490 | if For mListConta ins(CT_Dia gNm) then | |
| 491 | frmD iagnoses.I nitTab(Cop yDiagnoses , ListDiag nosisSecti ons); | |
| 492 | if For mListConta ins(CT_Pro cNm) then | |
| 493 | frmP rocedures. InitTab(Co pyProcedur es, ListPr ocedureSec tions); | |
| 494 | if For mListConta ins(CT_Imm Nm) then | |
| 495 | frmI mmunizatio ns.InitTab (CopyImmun izations,L istImmuniz Sections); | |
| 496 | if For mListConta ins(CT_Ski nNm) then | |
| 497 | frmS kinTests.I nitTab(Cop ySkinTests , ListSkin Sections); | |
| 498 | if For mListConta ins(CT_Ped Nm) then | |
| 499 | frmP atientEd.I nitTab(Cop yPatientEd s, ListPat ientSectio ns); | |
| 500 | if For mListConta ins(CT_Hlt hNm) then | |
| 501 | frmH ealthFacto rs.InitTab (CopyHealt hFactors, ListHealth Sections); | |
| 502 | if For mListConta ins(CT_Xam Nm) then | |
| 503 | frmE xams.InitT ab(CopyExa ms, ListEx amsSection s); | |
| 504 | uVisit Type.Assig n(VisitTyp e); | |
| 505 | if For mListConta ins(CT_Vis itNm) then | |
| 506 | with f rmVisitTyp e do | |
| 507 | begin | |
| 508 | Matc hVType; | |
| 509 | end; | |
| 510 | end; | |
| 511 | end; | |
| 512 | ||
| 513 | ||
| 514 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 515 | //Name: pr ocedure Tf rmEncounte rFrame.For mDestroy(S ender: TOb ject); | |
| 516 | //Created: Jan 1999 | |
| 517 | //By: Robe rt Bott | |
| 518 | //Location : ISL | |
| 519 | //Descript ion: Free up objects in memory when dest roying for m. | |
| 520 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 521 | procedure TfrmEncoun terFrame.F ormDestroy (Sender: T Object); | |
| 522 | var | |
| 523 | i: integ er; | |
| 524 | ||
| 525 | begin | |
| 526 | inherite d; | |
| 527 | for i := Component Count-1 do wnto 0 do | |
| 528 | if(Com ponents[i] is TForm) then | |
| 529 | TFor m(Componen ts[i]).Fre e; | |
| 530 | ||
| 531 | formlist .clear; | |
| 532 | KillObj( @uProvider s); | |
| 533 | uVisitTy pe.Free; | |
| 534 | Formlist .free; | |
| 535 | end; | |
| 536 | ||
| 537 | ||
| 538 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 539 | //Name: pr ocedure Tf rmEncounte rFrame.For mCreate(Se nder: TObj ect); | |
| 540 | //Created: Jan 1999 | |
| 541 | //By: Robe rt Bott | |
| 542 | //Location : ISL | |
| 543 | //Descript ion: Creat e instance s of the o bjects nee ded. | |
| 544 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 545 | procedure TfrmEncoun terFrame.F ormCreate( Sender: TO bject); | |
| 546 | begin | |
| 547 | uProvide rs := TPCE ProviderLi st.Create; | |
| 548 | uVisitTy pe := TPCE Proc.creat e; | |
| 549 | //uVital Old := TS tringList. create; | |
| 550 | //uVital New := TS tringList. create; | |
| 551 | FormList := TStrin gList.crea te; | |
| 552 | fCancel := False; | |
| 553 | FAbort : = TRUE; | |
| 554 | SetFormF onts; | |
| 555 | FGiveMul tiTabMessa ge := Scre enReaderSy stemActive ; | |
| 556 | end; | |
| 557 | ||
| 558 | ||
| 559 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 560 | //Name: pr ocedure Tf rmEncounte rFrame.Sen dData; | |
| 561 | //Created: Jan 1999 | |
| 562 | //By: Robe rt Bott | |
| 563 | //Location : ISL | |
| 564 | //Descript ion: Send Data back to the M s ide sor st oring. | |
| 565 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 566 | procedure TfrmEncoun terFrame.S endData; | |
| 567 | //send PCE data to t he RPC | |
| 568 | var | |
| 569 | StoreMes sage: stri ng; | |
| 570 | GAFScore : integer; | |
| 571 | GAFDate: TFMDateTi me; | |
| 572 | GAFStaff : Int64; | |
| 573 | ||
| 574 | begin | |
| 575 | inherite d; | |
| 576 | // do va lidation f or vitals & anything else here | |
| 577 | ||
| 578 | //proces s vitals | |
| 579 | if FormL istContain s(CT_VitNm ) then | |
| 580 | begin | |
| 581 | with f rmEncVital s do | |
| 582 | if Has Data then | |
| 583 | begin | |
| 584 | if A ssignVital s then | |
| 585 | begi n | |
| 586 | St oreMessage := ValAnd StoreVital s(frmEncVi tals.Vital New); | |
| 587 | if (Storemes sage <> 'T rue') then | |
| 588 | be gin | |
| 589 | ShowMsg(st oremessage ); | |
| 590 | // exit; | |
| 591 | en d; | |
| 592 | end; | |
| 593 | end; | |
| 594 | end; | |
| 595 | ||
| 596 | if(FormL istContain s(CT_GAFNm )) then | |
| 597 | begin | |
| 598 | frmGAF .GetGAFSco re(GAFScor e, GAFDate , GAFStaff ); | |
| 599 | if(GAF Score > 0) then | |
| 600 | Save GAFScore(G AFScore, G AFDate, GA FStaff); | |
| 601 | end; | |
| 602 | ||
| 603 | //PCE | |
| 604 | ||
| 605 | UpdateEn counter(uE ncPCEData) ; | |
| 606 | with uEn cPCEData d o | |
| 607 | begin | |
| 608 | if FAu toSave the n | |
| 609 | Save | |
| 610 | else | |
| 611 | FSav eNeeded := TRUE; | |
| 612 | end; | |
| 613 | Close; | |
| 614 | end; | |
| 615 | ||
| 616 | {///////// ////////// ////////// ////////// ////////// ////////// ////////// ////////// | |
| 617 | //Name: pr ocedure Tf rmEncounte rFrame.For mCloseQuer y(Sender: TObject; | |
| 618 | //Created: Jan 1999 | |
| 619 | //By: Robe rt Bott | |
| 620 | //Location : ISL | |
| 621 | //Descript ion: Check to see if the Cance l button w as pressed , if not, call | |
| 622 | // procedu re to send the data to the ser ver. | |
| 623 | ////////// ////////// ////////// ////////// ////////// ////////// ////////// /////////} | |
| 624 | procedure TfrmEncoun terFrame.F ormCloseQu ery(Sender : TObject; | |
| 625 | var CanC lose: Bool ean); | |
| 626 | ||
| 627 | const | |
| 628 | TXT_SAVE CHANGES = 'Save Chan ges?'; | |
| 629 | ||
| 630 | var | |
| 631 | TmpPCEDa ta: TPCEDa ta; | |
| 632 | ask, Cha ngeOK: boo lean; | |
| 633 | ||
| 634 | begin | |
| 635 | CanClose := True; | |
| 636 | if(FAbor t) then | |
| 637 | FCance l := (Info Box(TXT_SA VECHANGES, TXT_SAVEC HANGES, MB _YESNO) = ID_NO); | |
| 638 | if FCanc el then Ex it; //*KC M* | |
| 639 | ||
| 640 | if(uProv iders.Prim aryIdx >= 0) then | |
| 641 | ask := TRUE | |
| 642 | else | |
| 643 | begin | |
| 644 | TmpPCE Data := TP CEData.Cre ate; | |
| 645 | try | |
| 646 | uEnc PCEData.Co pyPCEData( TmpPCEData ); | |
| 647 | Upda teEncounte r(TmpPCEDa ta); | |
| 648 | ask := TmpPCED ata.NeedPr oviderInfo ; | |
| 649 | finall y | |
| 650 | TmpP CEData.Fre e; | |
| 651 | end; | |
| 652 | end; | |
| 653 | if ask a nd (NoPrim aryPCEProv ider(uProv iders, uEn cPCEData)) then | |
| 654 | begin | |
| 655 | InfoBo x(TX_PROV_ REQ, TC_PR OV_REQ, MB _OK or MB_ ICONWARNIN G); | |
| 656 | CanClo se := Fals e; | |
| 657 | Exit; | |
| 658 | end; | |
| 659 | ||
| 660 | uVisitTy pe.Provide r := uProv iders.Prim aryIEN; { RV - v20.1 } | |
| 661 | ||
| 662 | if FormL istContain s(CT_VitNm ) then | |
| 663 | CanClo se := frmE ncVitals.O K2SaveVita ls; | |
| 664 | ||
| 665 | if CanCl ose and Fo rmListCont ains(CT_Pr ocNm) then | |
| 666 | begin | |
| 667 | CanC lose := fr mProcedure s.OK2SaveP rocedures; | |
| 668 | if n ot CanClos e then | |
| 669 | be gin | |
| 670 | tabPageCha nge(Self, FormList.I ndexOf(CT_ ProcNm), C hangeOK); | |
| 671 | SwitchToPa ge(PageIDT oForm(CT_P ROCEDURES) ); | |
| 672 | TabControl .TabIndex := FormLis t.IndexOf( CT_ProcNm) ; | |
| 673 | en d; | |
| 674 | end; | |
| 675 | ||
| 676 | if CanCl ose then S endData; //*KCM* | |
| 677 | ||
| 678 | end; | |
| 679 | ||
| 680 | procedure TfrmEncoun terFrame.T abControlC hange(Send er: TObjec t); | |
| 681 | var | |
| 682 | i: integ er; | |
| 683 | begin | |
| 684 | //must swi tch based on caption , as all t abs may no t be prese nt. | |
| 685 | if (send er as tTab Control).t abindex = -1 then ex it; | |
| 686 | ||
| 687 | if TabCo ntrol.CanF ocus and A ssigned(FL astPage) a nd not Tab Control.Fo cused then | |
| 688 | TabCon trol.SetFo cus; //CQ : 14845 | |
| 689 | ||
| 690 | for i := CT_FIRST to CT_LAST do | |
| 691 | begin | |
| 692 | with F ormlist do | |
| 693 | with sender as tTabContr ol do | |
| 694 | if Tabindex = IndexOf( PageIdToTa b(i)) then | |
| 695 | begi n | |
| 696 | Pa geIDToForm (i).show; | |
| 697 | Sw itchToPage (PageIDToF orm(i)); | |
| 698 | Ex it; | |
| 699 | end; | |
| 700 | end; | |
| 701 | end; | |
| 702 | ||
| 703 | procedure TfrmEncoun terFrame.T abControlC hanging(Se nder: TObj ect; | |
| 704 | var Allo wChange: B oolean); | |
| 705 | begin | |
| 706 | if(assig ned(FLastP age)) then | |
| 707 | FLastP age.AllowT abChange(A llowChange ); | |
| 708 | end; | |
| 709 | ||
| 710 | procedure TfrmEncoun terFrame.U pdateEncou nter(PCE: TPCEData); | |
| 711 | begin | |
| 712 | with PCE do | |
| 713 | begin | |
| 714 | if For mListConta ins(CT_Vis itNm) then | |
| 715 | begin | |
| 716 | Visi tType := u VisitType; | |
| 717 | frmV isitType.f raVisitRel ated.GetRe lated(uEnc PCEData); | |
| 718 | Prov iders.Merg e(uProvide rs); | |
| 719 | end; | |
| 720 | // DN S BELLC | |
| 721 | if For mListConta ins(CT_Dia gNm) then | |
| 722 | SetD iagnoses(f rmDiagnose s.lstCapti onList.Ite msStrings) ; | |
| 723 | if For mListConta ins(CT_Pro cNm) then | |
| 724 | SetPr ocedures(f rmProcedur es.lstCapt ionList.It emsStrings ); | |
| 725 | if For mListConta ins(CT_Imm Nm) then | |
| 726 | Set Immunizati ons(frmImm unizations .lstCaptio nList.Item sStrings); | |
| 727 | if For mListConta ins(CT_Ski nNm) then | |
| 728 | Set SkinTests( frmSkinTes ts.lstCapt ionList.It emsStrings ); | |
| 729 | if For mListConta ins(CT_Ped Nm) then | |
| 730 | SetP atientEds( frmPatient Ed.lstCapt ionList.It emsStrings ); | |
| 731 | if For mListConta ins(CT_Hlt hNm) then | |
| 732 | SetH ealthFacto rs(frmHeal thFactors. lstCaption List.Items Strings); | |
| 733 | if For mListConta ins(CT_Xam Nm) then | |
| 734 | SetE xams(frmEx ams.lstCap tionList.I temsString s); | |
| 735 | end; | |
| 736 | end; | |
| 737 | ||
| 738 | procedure TfrmEncoun terFrame.S electTab(N ewTabName: string); | |
| 739 | var | |
| 740 | AllowCha nge: boole an; | |
| 741 | begin | |
| 742 | AllowCha nge := Tru e; | |
| 743 | tabContr ol.TabInde x := FormL ist.IndexO f(NewTabNa me); | |
| 744 | tabPageC hange(Self , tabContr ol.TabInde x, AllowCh ange); | |
| 745 | end; | |
| 746 | ||
| 747 | procedure TfrmEncoun terFrame.T abControlE nter(Sende r: TObject ); | |
| 748 | begin | |
| 749 | if FGive MultiTabMe ssage then // CQ#154 83 | |
| 750 | begin | |
| 751 | FGiveM ultiTabMes sage := FA LSE; | |
| 752 | GetScr eenReader. Speak('Mul ti tab for m'); | |
| 753 | end; | |
| 754 | end; | |
| 755 | ||
| 756 | procedure TfrmEncoun terFrame.F ormKeyDown (Sender: T Object; va r Key: Wor d; | |
| 757 | Shift: T ShiftState ); | |
| 758 | var | |
| 759 | CanChang e: boolean ; | |
| 760 | begin | |
| 761 | inherite d; | |
| 762 | if (Key = VK_ESCAP E) then | |
| 763 | begin | |
| 764 | Key := 0; | |
| 765 | FLastP age.btnCan cel.Click; | |
| 766 | end | |
| 767 | else if Key = VK_T AB then | |
| 768 | begin | |
| 769 | if ssC trl in Shi ft then | |
| 770 | begin | |
| 771 | CanC hange := T rue; | |
| 772 | if A ssigned(Ta bControl.O nChanging) then | |
| 773 | Ta bControl.O nChanging( TabControl , CanChang e); | |
| 774 | if C anChange t hen | |
| 775 | begi n | |
| 776 | if ssShift i n Shift th en | |
| 777 | be gin | |
| 778 | if TabCont rol.TabInd ex < 1 the n | |
| 779 | TabContr ol.TabInde x := TabCo ntrol.Tabs .Count -1 | |
| 780 | else | |
| 781 | TabContr ol.TabInde x := TabCo ntrol.TabI ndex - 1; | |
| 782 | en d | |
| 783 | el se | |
| 784 | TabControl .TabIndex := (TabCon trol.TabIn dex + 1) m od TabCont rol.Tabs.C ount; | |
| 785 | if Assigned( TabControl .OnChange) then | |
| 786 | TabControl .OnChange( TabControl ); | |
| 787 | end; | |
| 788 | Key := 0; | |
| 789 | end; | |
| 790 | end; | |
| 791 | end; | |
| 792 | ||
| 793 | procedure TfrmEncoun terFrame.S etFormFont s; | |
| 794 | var | |
| 795 | NewFontS ize: integ er; | |
| 796 | begin | |
| 797 | NewFontS ize := Mai nFontsize; | |
| 798 | if FormL istContain s(CT_Visit Nm) then | |
| 799 | frmVis itType.Fon t.Size := NewFontSiz e; | |
| 800 | if FormL istContain s(CT_DiagN m) then | |
| 801 | frmDia gnoses.Fon t.Size := NewFontSiz e; | |
| 802 | if FormL istContain s(CT_ProcN m) then | |
| 803 | frmPro cedures.Fo nt.Size := NewFontSi ze; | |
| 804 | if FormL istContain s(CT_ImmNm ) then | |
| 805 | frmImm unizations .Font.Size := NewFon tSize; | |
| 806 | if FormL istContain s(CT_SkinN m) then | |
| 807 | frmSki nTests.Fon t.Size := NewFontSiz e; | |
| 808 | if FormL istContain s(CT_PedNm ) then | |
| 809 | frmPat ientEd.Fon t.Size := NewFontSiz e; | |
| 810 | if FormL istContain s(CT_HlthN m) then | |
| 811 | frmHea lthFactors .Font.Size := NewFon tSize; | |
| 812 | if FormL istContain s(CT_XamNm ) then | |
| 813 | frmExa ms.Font.Si ze := NewF ontSize; | |
| 814 | if FormL istContain s(CT_VitNm ) then | |
| 815 | frmEnc Vitals.Fon t.Size := NewFontSiz e; | |
| 816 | if FormL istContain s(CT_GAFNm ) then | |
| 817 | frmGAF .SetFontSi ze(NewFont Size); | |
| 818 | end; | |
| 819 | ||
| 820 | procedure TfrmEncoun terFrame.F ormClose(S ender: TOb ject; | |
| 821 | var Acti on: TClose Action); | |
| 822 | begin | |
| 823 | SaveUser Bounds(Sel f); | |
| 824 | end; | |
| 825 | ||
| 826 | procedure TfrmEncoun terFrame.F ormCanResi ze(Sender: TObject; var NewWid th, | |
| 827 | NewHeigh t: Integer ; var Resi ze: Boolea n); | |
| 828 | begin | |
| 829 | //CQ4740 | |
| 830 | if NewWi dth < 200 then | |
| 831 | begin | |
| 832 | NewWi dth := 200 ; | |
| 833 | Resiz e := false ; | |
| 834 | end; | |
| 835 | end; | |
| 836 | ||
| 837 | procedure TfrmEncoun terFrame.F ormShow(Se nder: TObj ect); | |
| 838 | begin | |
| 839 | inherite d; | |
| 840 | if TabCo ntrol.CanF ocus then | |
| 841 | TabCon trol.SetFo cus; | |
| 842 | end; | |
| 843 | ||
| 844 | end. |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.