[623] | 1 | WVSNOMED ;HIOFO/FT-IS LAB TEST A PAP SMEAR? ;2/12/04 14:37
|
---|
| 2 | ;;1.0;WOMEN'S HEALTH;**16**;Sep 30, 1998
|
---|
| 3 | ;
|
---|
| 4 | ; This routine uses the following IAs:
|
---|
| 5 | ; #1362 - ^ORB3 (controlled)
|
---|
| 6 | ; #525 - ^LR references (controlled)
|
---|
| 7 | ; #4298 - ^LR references (private)
|
---|
| 8 | ; #10035 - ^DPT( references (supported)
|
---|
| 9 | ; #10070 - ^XMD (supported)
|
---|
| 10 | ; #10141 - ^XPDUTL (supported)
|
---|
| 11 | ;
|
---|
| 12 | SNOMED() ; Check lab test for SNOMED codes that indicate if pap smear.
|
---|
| 13 | ; LRDFN,LRI,LRSS must be defined.
|
---|
| 14 | ; Returns: 0 - lab test is not a pap smear
|
---|
| 15 | ; 1 - lab test is a pap smear
|
---|
| 16 | ;
|
---|
| 17 | N WVPAP,WVPIEN,WVPIEN1,WVSNOMED,WVTOP
|
---|
| 18 | ; WVTOP array identifies SNOMED codes (IENS) used for pap smears
|
---|
| 19 | S WVTOP(0)=0
|
---|
| 20 | S WVPIEN=$$PAPIEN^WVRPCPR()
|
---|
| 21 | I 'WVPIEN Q 0 ;pap smear procedure entry not found
|
---|
| 22 | S WVPIEN1=0
|
---|
| 23 | F S WVPIEN1=$O(^WV(790.2,WVPIEN,2,WVPIEN1)) Q:'WVPIEN1 D
|
---|
| 24 | .S WVSNOMED=$P($G(^WV(790.2,WVPIEN,2,WVPIEN1,0)),U,1)
|
---|
| 25 | .Q:'WVSNOMED
|
---|
| 26 | .S WVTOP(0)=WVTOP(0)+1
|
---|
| 27 | .S WVTOP(WVSNOMED)=""
|
---|
| 28 | .Q
|
---|
| 29 | I WVTOP(0)=0 Q 0 ;no SNOMED codes identified
|
---|
| 30 | K WVTOP(0)
|
---|
| 31 | S WVPAP=0
|
---|
| 32 | I LRSS="CY" S WVPAP=$$CY()
|
---|
| 33 | I LRSS="SP" S WVPAP=$$SP()
|
---|
| 34 | Q WVPAP
|
---|
| 35 | ;
|
---|
| 36 | CY() ; Check SNOMED codes used by cytology entry
|
---|
| 37 | N WVFLAG,WVLOOP,WVLOOP1,WVSNOMED
|
---|
| 38 | S (WVFLAG,WVLOOP)=0
|
---|
| 39 | ; check topography multiple
|
---|
| 40 | F S WVLOOP=$O(^LR(LRDFN,"CY",LRI,2,WVLOOP)) Q:'WVLOOP!(WVFLAG=1) D
|
---|
| 41 | .S WVSNOMED=+$P($G(^LR(LRDFN,"CY",LRI,2,WVLOOP,0)),U,1)
|
---|
| 42 | .Q:'WVSNOMED
|
---|
| 43 | .I $D(WVTOP(WVSNOMED)) S WVFLAG=1
|
---|
| 44 | .Q
|
---|
| 45 | Q WVFLAG
|
---|
| 46 | ;
|
---|
| 47 | SP() ; Check SNOMED codes used by surgical pathology entry
|
---|
| 48 | N WVFLAG,WVLOOP,WVLOOP1,WVSNOMED
|
---|
| 49 | ; check topography multiple
|
---|
| 50 | S (WVFLAG,WVLOOP)=0
|
---|
| 51 | F S WVLOOP=$O(^LR(LRDFN,"SP",LRI,2,WVLOOP)) Q:'WVLOOP!(WVFLAG=1) D
|
---|
| 52 | .S WVSNOMED=+$P($G(^LR(LRDFN,"SP",LRI,2,WVLOOP,0)),U,1)
|
---|
| 53 | .Q:'WVSNOMED
|
---|
| 54 | .I $D(WVTOP(WVSNOMED)) S WVFLAG=1
|
---|
| 55 | .Q
|
---|
| 56 | Q WVFLAG
|
---|
| 57 | ;
|
---|
| 58 | ADD ; Add pap smear to FILE 790.1
|
---|
| 59 | N WV7901,WVDR,WVPIEN,WVERR
|
---|
| 60 | S WVERR=0
|
---|
| 61 | I '$D(^WV(790,DFN,0)) D ;add patient to File 790, if not there
|
---|
| 62 | .D AUTOADD^WVPATE(DFN,DUZ(2),.WVERR)
|
---|
| 63 | .Q
|
---|
| 64 | Q:WVERR<0 ;quit if new patient could not be added to File 790
|
---|
| 65 | S WVPIEN=$$PAPIEN^WVRPCPR()
|
---|
| 66 | S WVDR=".02////"_DFN
|
---|
| 67 | S WVDR=WVDR_";.04////"_WVPIEN ;File 790.2 pointer
|
---|
| 68 | S:WVPROV]"" WVDR=WVDR_";.07////"_WVPROV ;provider
|
---|
| 69 | S WVDR=WVDR_";.1////"_$G(DUZ(2)) ;health care facility
|
---|
| 70 | S:WVLOC]"" WVDR=WVDR_";.11////"_WVLOC ;patient location
|
---|
| 71 | S WVDR=WVDR_";.12////"_WVDATE ;procedure date/time
|
---|
| 72 | S WVDR=WVDR_";.14////"_"o" ;status
|
---|
| 73 | S WVDR=WVDR_";.18////.5;.19////"_DT ;entering user and date
|
---|
| 74 | S WVDR=WVDR_";.34////"_$G(DUZ(2)) ;accessioning facility
|
---|
| 75 | S WVDR=WVDR_";2.17////"_WVLABAN ;lab accession#
|
---|
| 76 | S WVDR=WVDR_";2.18////"_LRDFN ;Lab Data file (#63) pointer
|
---|
| 77 | S WVDR=WVDR_";2.19////"_LRI ;Lab Data file inverse d/t
|
---|
| 78 | S WVDR=WVDR_";2.2////"_LRSS ;Lab Data file subscript (CY/SP)
|
---|
| 79 | ; add procedure to File 790.1
|
---|
| 80 | D NEW2^WVPROC(DFN,WVPIEN,WVDATE,WVDR,"","",.WVERR)
|
---|
| 81 | Q:'Y
|
---|
| 82 | S WV7901=+Y
|
---|
| 83 | I $$PATCH^XPDUTL("OR*3.0*210") D Q
|
---|
| 84 | .D CPRS^WVSNOMED(70,DFN,"",WVPROV,"Pap Smear results available.","")
|
---|
| 85 | .Q
|
---|
| 86 | D MAIL(DFN,WVLABAN,WVPROV,LRSS,WV7901)
|
---|
| 87 | Q
|
---|
| 88 | MAIL(DFN,WVLABAN,WVPROV,LRSS,WV7901) ; Send mail message to case manager
|
---|
| 89 | ; when pap smear added to FILE 790.1
|
---|
| 90 | ; Called from above
|
---|
| 91 | ; DFN -> Patient ien
|
---|
| 92 | ; WVLABAN -> Lab Accession# (e.g., CY 99 1)
|
---|
| 93 | ; WVPROV -> File 200 IEN (provider/requestor)
|
---|
| 94 | ; LRSS -> File 63 subscript (e.g., CY or SP)
|
---|
| 95 | ; WV7901 -> FILE 790.1 IEN
|
---|
| 96 | Q:'$G(DFN)!($G(WVLABAN)="")!($G(LRSS)="")
|
---|
| 97 | N WVCMGR,WVLOOP,WVMSG,XMDUZ,XMSUB,XMTEXT,XMY
|
---|
| 98 | S WVCMGR=+$$GET1^DIQ(790,DFN,.1,"I") ;get case manager
|
---|
| 99 | S:WVCMGR XMY(WVCMGR)=""
|
---|
| 100 | ; if no case manager, then get default case manager(s)
|
---|
| 101 | I 'WVCMGR S WVLOOP=0 F S WVLOOP=$O(^WV(790.02,WVLOOP)) Q:'WVLOOP D
|
---|
| 102 | .S WVCMGR=$$GET1^DIQ(790.02,WVLOOP,.02,"I")
|
---|
| 103 | .S:WVCMGR XMY(WVCMGR)=""
|
---|
| 104 | .Q
|
---|
| 105 | Q:$O(XMY(0))'>0 ;no case manager(s)
|
---|
| 106 | S XMDUZ=.5 ;message sender
|
---|
| 107 | S XMSUB="Pap Smear report verified for a WH patient"
|
---|
| 108 | S WVMSG(1)="A "_$S(LRSS="CY":"Cytology ",LRSS="SP":"Surgical Pathology ",1:"")_"lab test was verified for:"
|
---|
| 109 | S WVMSG(2)=" "
|
---|
| 110 | S WVMSG(3)=" Patient: "_$P($G(^DPT(DFN,0)),U,1)_" (SSN: "_$$SSN^WVUTL1(DFN)_")"
|
---|
| 111 | S WVMSG(4)=" WH Accession #: "_$P($G(^WV(790.1,+WV7901,0)),U,1)
|
---|
| 112 | S WVMSG(5)=" LAB Accession #: "_WVLABAN
|
---|
| 113 | S WVMSG(6)="Test Requestor/Provider: "_$S(+WVPROV:$$GET1^DIQ(200,+WVPROV,.01,"E"),1:"UNKNOWN")
|
---|
| 114 | S WVMSG(7)=" "
|
---|
| 115 | S WVMSG(8)="Please use CPRS to resolve the Clinical Reminder for this procedure and"
|
---|
| 116 | S WVMSG(9)="complete the result."
|
---|
| 117 | S XMTEXT="WVMSG("
|
---|
| 118 | D ^XMD
|
---|
| 119 | Q
|
---|
| 120 | ;
|
---|
| 121 | CPRS(WVORN,WVDFN,WVORDER,WVPROV,WVMSG,WVIEN) ; Generate a CPRS alert
|
---|
| 122 | ; WVORN - FILE 100.9 IEN
|
---|
| 123 | ; WVDFN - FILE 2 IEN
|
---|
| 124 | ; WVORDER - FILE 100 IEN (not currently used)
|
---|
| 125 | ; WVPROV - FILE 200 IEN
|
---|
| 126 | ; WVMSG - Free text message
|
---|
| 127 | ; WVIEN - IEN for a lab or radiology report (not currently used)
|
---|
| 128 | ;
|
---|
| 129 | Q:'$$PATCH^XPDUTL("OR*3.0*210") ;no pap & mam alerts
|
---|
| 130 | Q:'WVDFN
|
---|
| 131 | Q:'WVORN
|
---|
| 132 | I WVPROV]"" S WVARRAY(WVPROV)="" ;provider's IEN
|
---|
| 133 | S WVCMGR=$P($G(^WV(790,WVDFN,0)),U,10)
|
---|
| 134 | I WVCMGR]"" S WVARRAY(WVCMGR)="" ;women's health case manager's IEN
|
---|
| 135 | D EN^ORB3(WVORN,WVDFN,WVORDER,.WVARRAY,WVMSG,WVIEN)
|
---|
| 136 | K WVARRAY,WVCMGR
|
---|
| 137 | Q
|
---|