| 1 | ECXSCRP ;ALB/JAM - Restricted Stop Code Nonconforming Clinic Report; 07/24/03
 | 
|---|
| 2 |  ;;3.0;DSS EXTRACTS;**57,58**;Dec 22, 1997
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EN ;foreground entry point
 | 
|---|
| 5 |  N ZTRTN,ZTDESC,ZTIO,ZTQUEUED,DIR,DIRUT,X,Y,ECX,ECXSD,PSC,SSC,ECXPCF
 | 
|---|
| 6 |  W @IOF
 | 
|---|
| 7 |  W "This option synchronizes the Primary and Secondary Stop Codes in the Clinics"
 | 
|---|
| 8 |  W !,"and Stop Codes File #728.44 with those in the Hospital Location File #44."
 | 
|---|
| 9 |  W !,"It produces a report highlighting any non conformance reasons that pertain"
 | 
|---|
| 10 |  W !,"to the Primary and Secondary Codes. Please contact the responsible party "
 | 
|---|
| 11 |  W !,"for corrective action."
 | 
|---|
| 12 |  S DIR(0)="SO^A:Active Clinics;I:Inactive Clinics;B:Both"
 | 
|---|
| 13 |  S DIR("A")="Select Report"
 | 
|---|
| 14 |  S DIR("?",1)="Enter an A for Active Clinics, I for Inactive Clinics,"
 | 
|---|
| 15 |  S DIR("?")="B for Both Active and Inactive Clinics"
 | 
|---|
| 16 |  D ^DIR K DIR I $D(DIRUT) G END
 | 
|---|
| 17 |  S ECXPCF=Y
 | 
|---|
| 18 |  W ".  Please be patient, this may take a few moments..."
 | 
|---|
| 19 |  ;Synch primary & secondary stop codes from file #44 with #728.44
 | 
|---|
| 20 |  S ECX=0 F  S ECX=$O(^ECX(728.44,ECX)) Q:'ECX  D
 | 
|---|
| 21 |  .I '$D(^SC(ECX,0)) Q
 | 
|---|
| 22 |  .S ECXSD=$G(^SC(ECX,0)) I ECXSD="" Q
 | 
|---|
| 23 |  .S PSC=$S($P(ECXSD,U,7):$P($G(^DIC(40.7,$P(ECXSD,U,7),0)),U,2),1:"")
 | 
|---|
| 24 |  .S SSC=$S($P(ECXSD,U,18):$P($G(^DIC(40.7,$P(ECXSD,U,18),0)),U,2),1:"")
 | 
|---|
| 25 |  .I PSC S $P(^ECX(728.44,ECX,0),U,2)=PSC
 | 
|---|
| 26 |  .I SSC S $P(^ECX(728.44,ECX,0),U,3)=SSC
 | 
|---|
| 27 |  ;device selection
 | 
|---|
| 28 |  K IOP,%ZIS,POP,IO("Q")
 | 
|---|
| 29 |  S %ZIS("A")="Select Device: ",%ZIS="QM" D ^%ZIS I POP G END
 | 
|---|
| 30 |  I $D(IO("Q")) K IO("Q") D  G END
 | 
|---|
| 31 |  .S ZTDESC="Restricted Stop Code/DSS Identifier Report",ZTSAVE("ECXPCF")=""
 | 
|---|
| 32 |  .S ZTRTN="PROCESS^ECXSCRP",ZTIO=ION D ^%ZTLOAD,HOME^%ZIS K ZTSK
 | 
|---|
| 33 |  U IO
 | 
|---|
| 34 |  D PROCESS
 | 
|---|
| 35 | END D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
 | 
|---|
| 36 |  Q
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 | PROCESS ;background entry point
 | 
|---|
| 39 |  ;locate invalid Stop Code in HOSPITAL LOCATION file #44 & CLINICS
 | 
|---|
| 40 |  ;AND STOP CODES file #728.44
 | 
|---|
| 41 |  N ECX,NAM,STR,IEN,PSC,SSC,CNTX,ECXPG,ECXOUT,LNS,DPC,DSC,SCIEN,ECXF
 | 
|---|
| 42 |  N INDT,TYP,ACF,HTYP,CLNF,ECXRDT
 | 
|---|
| 43 |  S %H=$H D YX^%DTC S ECXRDT=Y
 | 
|---|
| 44 |  S $P(LNS,"-",80)="",(CNTX,IEN,ECXOUT,ECXF)=0,ECXPG=1,CLNF=0
 | 
|---|
| 45 |  ;search file #728.44 for invalid stop code entries
 | 
|---|
| 46 |  D HDR S IEN=0
 | 
|---|
| 47 |  F  S IEN=$O(^ECX(728.44,IEN)) Q:'IEN  D  Q:ECXOUT  S:ECXF CNTX=CNTX+1
 | 
|---|
| 48 |  .S ECX=$G(^ECX(728.44,IEN,0)),PSC=$P(ECX,U,2),SSC=$P(ECX,U,3),CLNF=0
 | 
|---|
| 49 |  .S DPC=$P(ECX,U,4),DSC=$P(ECX,U,5),NAM=$$GET1^DIQ(44,$P(ECX,U),.01)
 | 
|---|
| 50 |  .S INDT=$P(ECX,U,10),ECXF=0 I INDT'="" S NAM="*"_NAM
 | 
|---|
| 51 |  .S ACF=$S($E(NAM)="*":0,1:1),HTYP=$$GET1^DIQ(44,$P(ECX,U),2,"I")
 | 
|---|
| 52 |  .I $S((ECXPCF="A")&('ACF):1,(ECXPCF="I")&(ACF):1,1:0) Q
 | 
|---|
| 53 |  .D  I ECXOUT Q
 | 
|---|
| 54 |  ..I PSC="" S STR="Missing primary code" D PRN Q
 | 
|---|
| 55 |  ..D SCCHK(PSC,"P") I $D(STR) D PRN
 | 
|---|
| 56 |  .I SSC'="" D SCCHK(SSC,"S") I $D(STR) D PRN
 | 
|---|
| 57 |  .D  I ECXOUT Q 
 | 
|---|
| 58 |  ..I DPC="" S STR="No DSS primary code" D PRN Q
 | 
|---|
| 59 |  ..I DPC'=PSC D SCCHK(DPC,"P") I $D(STR) D PRN
 | 
|---|
| 60 |  .I DSC'="",DSC'=SSC D SCCHK(DSC,"S") I $D(STR) D PRN
 | 
|---|
| 61 |  W !!,?25,$S(CNTX:CNTX,1:"NO")_" PROBLEM CLINICS FOUND."
 | 
|---|
| 62 |  Q
 | 
|---|
| 63 | PRN ;print line
 | 
|---|
| 64 |  Q:CLNF  I HTYP'="C" S STR="Not a Clinic" S CLNF=1
 | 
|---|
| 65 |  I ($Y+3)>IOSL D PAGE,HDR I ECXOUT Q
 | 
|---|
| 66 |  W !,IEN,?8,$E(NAM,1,24),?33,PSC,?38,SSC,?45,DPC,?50,DSC,?57,STR
 | 
|---|
| 67 |  S ECXF=1
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 | SCCHK(SCIEN,TYP) ;check stop code against file 40.7
 | 
|---|
| 71 |  N SCN,RTY,CTY,SCI
 | 
|---|
| 72 |  K STR
 | 
|---|
| 73 |  S CTY=$S(TYP="P":"^P^E^",1:"^S^E^")
 | 
|---|
| 74 |  S SCI=$$SCIEN(SCIEN) I SCI="" D  Q
 | 
|---|
| 75 |  .I TYP="S" Q:SSC=PSC  Q:DSC=DPC
 | 
|---|
| 76 |  .S STR=SCIEN_" Invalid Stop Code"
 | 
|---|
| 77 |  S SCN=$G(^DIC(40.7,SCI,0)),RTY=$P(SCN,U,6)
 | 
|---|
| 78 |  I $P(SCN,U,2)="" S STR="No pointer in file #40.7" Q
 | 
|---|
| 79 |  I RTY="" S STR=SCIEN_" No restriction type" Q
 | 
|---|
| 80 |  I CTY'[("^"_RTY_"^") D
 | 
|---|
| 81 |  .S STR=SCIEN_" cannot be "_$S(TYP="P":"prim",1:"second")_"ary"
 | 
|---|
| 82 |  Q
 | 
|---|
| 83 | PAGE ;
 | 
|---|
| 84 |  N SS,JJ,DIR,X,Y
 | 
|---|
| 85 |  I $E(IOST,1,2)="C-" D
 | 
|---|
| 86 |  . S SS=22-$Y F JJ=1:1:SS W !
 | 
|---|
| 87 |  . S DIR(0)="E" W ! D ^DIR K DIR I 'Y S ECXOUT=1
 | 
|---|
| 88 |  Q
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 | SCIEN(SCIEN) ;Get stop code IEN
 | 
|---|
| 91 |  I SCIEN="" Q ""
 | 
|---|
| 92 |  S SCIEN=$O(^DIC(40.7,"C",SCIEN,0))
 | 
|---|
| 93 |  Q SCIEN
 | 
|---|
| 94 |  ;
 | 
|---|
| 95 | HDR ;header for data from file #728.44
 | 
|---|
| 96 |  W @IOF
 | 
|---|
| 97 |  W ECXRDT,?73,"Page: ",ECXPG,!
 | 
|---|
| 98 |  W !,?18,"DSS IDENTIFIER NON-CONFORMING CLINICS REPORT",!,?32
 | 
|---|
| 99 |  W $S(ECXPCF="A":"Active",ECXPCF="I":"Inactive",1:"All")_" Clinics",!
 | 
|---|
| 100 |  W !,"CLINICS AND STOP CODES File (#728.44) - (Use 'Enter/Edit DSS "
 | 
|---|
| 101 |  W "Stop Codes for",!,?25,"Clinics' [ECXSCEDIT] menu option to "
 | 
|---|
| 102 |  W "make corrections)",!!,?45,"DSS",?50,"DSS"
 | 
|---|
| 103 |  W !,?33,"PRIM",?38,"2NDARY",?45,"PRIM",?50,"2NDARY"
 | 
|---|
| 104 |  W !,?8,$S(ECXPCF="B":"CLINIC NAME",1:""),?33,"STOP",?38,"CREDIT"
 | 
|---|
| 105 |  W ?45,"STOP",?50,"CREDIT",?57,"REASON FOR NON-",!
 | 
|---|
| 106 |  W "IEN #",?8,$S(ECXPCF="B":"(*currently inactive)",1:"CLINIC NAME")
 | 
|---|
| 107 |  W ?33,"CODE",?38,"CODE",?45,"CODE",?50,"CODE",?57,"CONFORMANCE"
 | 
|---|
| 108 |  W !,$E(LNS,1,80)
 | 
|---|
| 109 |  S ECXPG=ECXPG+1
 | 
|---|
| 110 |  Q
 | 
|---|