| 1 | MDWCHK ; HOIFO/NCA - Create CP Studies for Existing Procedures ;12/13/07  15:52
 | 
|---|
| 2 |  ;;1.0;CLINICAL PROCEDURES;**14**;Apr 01,2004;Build 20
 | 
|---|
| 3 |  ; Reference IA #10103 [Supported] XLFDT call
 | 
|---|
| 4 |  ;               10035 [Supported] Access DPT file (#2)
 | 
|---|
| 5 |  ;               10061 [Supported] VADPT call
 | 
|---|
| 6 |  ;               5062  [Private] Use of GMR(123,"ACP"
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 | START ; Convert procedure to procedures.
 | 
|---|
| 9 |  N MDAP,MDCPR,MDFD,MDFDA,MDFLG,MDFR,MDHEMO,MDHL7,MDHOLD,MDIEN,MDIENS,MDINST,MDJ1,MDL,MDLP,MDMAXD,MDNDT,MDNOW,MDNVS,MDP,MDST,MDX,MDY
 | 
|---|
| 10 |  Q:$G(MDCP)=""
 | 
|---|
| 11 |  Q:$G(MDUSR)=""
 | 
|---|
| 12 |  N MDY,X,Y,MDIEN,MDINST K ^TMP("MDPAT",$J) S MDMAXD=DT+.24,MDP=MDCP,MDFLG=0,MDAP=""
 | 
|---|
| 13 |  S MDY=+$G(MDSAP)
 | 
|---|
| 14 |  S MDL="" F  S MDL=$O(^GMR(123,"ACP",MDP,MDL)) Q:MDL<1  S MDJ1=0 F  S MDJ1=$O(^GMR(123,"ACP",MDP,MDL,MDJ1)) Q:MDJ1<1  D
 | 
|---|
| 15 |  .Q:$D(^TMP("MDPAT",$J,MDL))
 | 
|---|
| 16 |  .S MDFD=$O(^MDD(702,"ACON",+MDJ1,0)) Q:+MDFD>0
 | 
|---|
| 17 |  .S MDST=$$GET1^DIQ(123,+MDJ1_",",8,"E")
 | 
|---|
| 18 |  .Q:MDST'["PENDING"&(MDST'["ACTIVE")&(MDST'["SCHEDULED")
 | 
|---|
| 19 |  .S ^TMP("MDPAT",$J,MDL)="",MDAP=""
 | 
|---|
| 20 |  .S:'MDY MDAP=$$NOW^XLFDT()_"^"_$P($G(^MDS(702.01,+MDP,0)),"^",5)
 | 
|---|
| 21 |  .I $G(^DPT(MDL,.1))'=""&(MDY=1) S MDAP=$$NOW^XLFDT()_"^"_$P($G(^MDS(702.01,+MDP,0)),"^",5) Q:$P($G(^MDS(702.01,+MDP,0)),"^",5)=""
 | 
|---|
| 22 |  .I $G(^DPT(MDL,.1))=""&(MDY=2) S MDAP=$$NOW^XLFDT()_"^"_$P($G(^MDS(702.01,+MDP,0)),"^",5) Q:$P($G(^MDS(702.01,+MDP,0)),"^",5)=""
 | 
|---|
| 23 |  .I MDAP=""&(+$G(MDCL)>0) S MDAP=$$GETAPPT(MDL,MDCL)
 | 
|---|
| 24 |  .Q:'+MDAP
 | 
|---|
| 25 |  .S MDHEMO=$P($G(^MDS(702.01,+MDCP,0)),"^",6)
 | 
|---|
| 26 |  .S MDNDT=$S($P(MDAP,"^",1)="":$$NOW^XLFDT(),1:$P(MDAP,"^",1))
 | 
|---|
| 27 |  .S MDNVS=$S($P(MDAP,"^",1)="":$$NOW^XLFDT(),1:"A;"_$P(MDAP,"^",1)_";"_$P(MDAP,"^",2))
 | 
|---|
| 28 |  .I $E(MDAP,1)="A" Q:$P(MDAP,";",3)=""
 | 
|---|
| 29 |  .K MDFDA,MDIEN
 | 
|---|
| 30 |  .S MDFDA(702,"+1,",.01)=MDL
 | 
|---|
| 31 |  .S MDFDA(702,"+1,",.02)=$$NOW^XLFDT()
 | 
|---|
| 32 |  .S MDFDA(702,"+1,",.03)=MDUSR
 | 
|---|
| 33 |  .S MDFDA(702,"+1,",.04)=MDCP
 | 
|---|
| 34 |  .S MDFDA(702,"+1,",.05)=MDJ1
 | 
|---|
| 35 |  .S MDFDA(702,"+1,",.07)=MDNVS
 | 
|---|
| 36 |  .S MDINST=+$$GINST^MDWORSR(MDCP) Q:'MDINST
 | 
|---|
| 37 |  .S:MDNDT>MDMAXD MDFDA(702,"+1,",.09)=0
 | 
|---|
| 38 |  .S MDFDA(702,"+1,",.11)=+MDINST
 | 
|---|
| 39 |  .S MDFDA(702,"+1,",.14)=MDNDT
 | 
|---|
| 40 |  .D UPDATE^DIE("","MDFDA","MDIEN","MDERR") K MDFDA
 | 
|---|
| 41 |  .Q:MDNDT>MDMAXD
 | 
|---|
| 42 |  .S MDIENS=MDIEN(1)_"," I +MDHEMO=2 S MDHOLD=$P($G(^MDD(702,MDIEN(1),0)),"^",7),MDNOW=$$NOW^XLFDT(),$P(^MDD(702,MDIEN(1),0),"^",7)=$S(MDNOW>MDNDT:MDNDT,1:MDNOW)
 | 
|---|
| 43 |  .S MDHL7=$$SUB^MDHL7B(MDIEN(1))
 | 
|---|
| 44 |  .I +MDHL7=-1 S MDFDA(702,MDIENS,.09)=2,MDFDA(702,MDIENS,.08)=$P(MDHL7,U,2)
 | 
|---|
| 45 |  .I +MDHL7=1 S MDFDA(702,MDIENS,.09)=5,MDFDA(702,MDIENS,.08)=""
 | 
|---|
| 46 |  .D:$D(MDFDA) FILE^DIE("","MDFDA","MDERR")
 | 
|---|
| 47 |  .Q:'+$G(MDIENS)
 | 
|---|
| 48 |  .I MDHEMO=2 D CP^MDKUTL(+MDIENS) K MDFDA S:$G(MDHOLD)'="" MDFDA(702,+MDIENS_",",.07)=MDHOLD S MDFDA(702,+MDIENS_",",.09)=5 D FILE^DIE("","MDFDA","MDERR")
 | 
|---|
| 49 |  .Q
 | 
|---|
| 50 |  K ^TMP("MDPAT",$J)
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 | GETAPPT(MDPAT,MDDA) ; Get appointment
 | 
|---|
| 53 |  N DFN,MDALP,MDARES K ^UTILITY("VASD",$J) S DFN=MDPAT
 | 
|---|
| 54 |  S X1=DT,X2=365 D C^%DTC S VASD("T")=X+.24,VASD("F")=DT,VASD("W")="129",VASD("C",+MDDA)=+MDDA D SDA^VADPT
 | 
|---|
| 55 |  S MDARES=0 F MDALP=0:0 S MDALP=$O(^UTILITY("VASD",$J,MDALP)) Q:MDALP<1  S MDARES=$G(^(MDALP,"I")) Q
 | 
|---|
| 56 |  K ^UTILITY("VASD",$J),VASD,X1,X2,X
 | 
|---|
| 57 |  Q MDARES
 | 
|---|
| 58 | CHELP ; Help Message for the Schedule Appointment prompt
 | 
|---|
| 59 |  W !!,"REQUIRED field for the procedure to have auto CP study check-in."
 | 
|---|
| 60 |  W !,"Enter a ""^"" will exit completely."
 | 
|---|
| 61 |  W !!,"Enter 0 if you do not schedule appointments."
 | 
|---|
| 62 |  W !,"      1 if you only schedule appointments for outpatients."
 | 
|---|
| 63 |  W !,"      2 if you only schedule appointments for inpatients."
 | 
|---|
| 64 |  W !,"      3 if you schedule appointments for both 1 and 2."
 | 
|---|
| 65 |  Q
 | 
|---|
| 66 | PHELP ; Help Message for Procedure prompt
 | 
|---|
| 67 |  W !,"Enter a CP Definition for the procedure to"
 | 
|---|
| 68 |  W !,"have auto CP study check-in.",!
 | 
|---|
| 69 |  K MDLST D GETLST^XPAR(.MDLST,"SYS","MD CHECK-IN PROCEDURE LIST")
 | 
|---|
| 70 |  F MDLP=0:0 S MDLP=$O(MDLST(MDLP)) Q:MDLP<1  I +$G(MDLST(MDLP)) W !,$P($G(^MDS(702.01,+MDLST(MDLP),0)),"^",1)
 | 
|---|
| 71 |  K MDLST
 | 
|---|
| 72 |  Q
 | 
|---|