| 1 | QACI2A ; OAKOIFO/TKW - DATA MIGRATION - BUILD LEGACY DATA TO BE MIGRATED (CONT.) ;10/26/06  16:42 | 
|---|
| 2 | ;;2.0;Patient Representative;**19**;07/25/1995;Build 55 | 
|---|
| 3 | PARVISN(PARENT,VISNNAME) ; Get Parent Station Number and VISN Name for a Station | 
|---|
| 4 | N I,QACPAR | 
|---|
| 5 | ; Get parent institution IEN from QAC SITE PARAMETERS file entry | 
|---|
| 6 | S PARENT=$P($G(^QA(740,1,0)),"^"),VISNNAME="" | 
|---|
| 7 | Q:'PARENT | 
|---|
| 8 | ; Retrieve VISN name | 
|---|
| 9 | D PARENT^XUAF4("QACPAR","`"_PARENT,1) | 
|---|
| 10 | S I=$O(QACPAR("P",0)) I 'I S PARENT="" Q | 
|---|
| 11 | S VISNNAME=$P(QACPAR("P",I),"^") | 
|---|
| 12 | ; Get station number for parent station | 
|---|
| 13 | S PARENT=$$STA^XUAF4(PARENT) S:PARENT="" VISNNAME="" | 
|---|
| 14 | Q | 
|---|
| 15 | ; | 
|---|
| 16 | ASK(FLAG) ; Question Confirming that User want to run this option | 
|---|
| 17 | W !!,"This option builds temporary globals used to migrate all legacy data",!,"from the old Patient Representative system to the new Patient Advocate",!,"Tracking System (PATS).",! | 
|---|
| 18 | ;I $G(FLAG)="X" D | 
|---|
| 19 | ;. W !,"** This is the option to completely restart the migration process . **" | 
|---|
| 20 | ;. W !,"If data was migrated in error, the PATS Production Database Manager",!,"should delete the data from PATS prior to running this option.",! | 
|---|
| 21 | ;. Q | 
|---|
| 22 | N DIR S DIR(0)="YO",DIR("A")="Are you sure",DIR("B")="YES" | 
|---|
| 23 | S DIR("?",1)="This option reads through all of the ROCs. ROCs that have already been migrated" | 
|---|
| 24 | S DIR("?",2)="to PATS will not be moved to the staging area again. ROCs are checked for" | 
|---|
| 25 | S DIR("?",3)="data errors. Any ROCs with errors will not be moved to the staging area, and" | 
|---|
| 26 | S DIR("?",4)="will be displayed on an error report at the end of the process." | 
|---|
| 27 | S DIR("?",5)="" | 
|---|
| 28 | S DIR("?",6)="Once ROCs have been moved to the staging area, they are ready to be migrated" | 
|---|
| 29 | S DIR("?")="into PATS." | 
|---|
| 30 | D ^DIR | 
|---|
| 31 | Q Y | 
|---|
| 32 | ; | 
|---|
| 33 | CEMOCTS ; Build mapping lists for contacting_entity, method_of_contact, treatment_status. | 
|---|
| 34 | S MOC("P")=1,MOC("W")=2,MOC("V")=2,MOC("I")=3,MOC("L")=4,MOC("S")=5 | 
|---|
| 35 | Q:QACI0 | 
|---|
| 36 | S CE("PA")=1,CE("RE")=2,CE("FR")=3,CE("CO")=4,CE("VH")=5,CE("VO")=6,CE("AT")=7,CE("DI")=8,CE("ST")=9,CE("OT")=10 | 
|---|
| 37 | S TS("I")=6,TS("O")=7,TS("D")=8,TS("N")=9,TS("L")=10,TS("E")=11,TS("H")=12 | 
|---|
| 38 | Q | 
|---|
| 39 | ; | 
|---|
| 40 | BLDISS ; Build a list of migrated National Issue Codes. | 
|---|
| 41 | K ^XTMP("QACMIGR","ISS","D") | 
|---|
| 42 | ; Count of national issue codes to migrate=59 | 
|---|
| 43 | S ^XTMP("QACMIGR","ISS","D")=59 | 
|---|
| 44 | N I | 
|---|
| 45 | F I=1:1 S X=$P($T(LIST+I),";",3) Q:X=""  S ^XTMP("QACMIGR","ISS","D",X)="" | 
|---|
| 46 | Q | 
|---|
| 47 | ; | 
|---|
| 48 | BLDCC(STATION,PATSCNT) ; Build list of all Congressional Contacts to migrate | 
|---|
| 49 | N CCIEN,CCCNT,CC0,X,CCDNM | 
|---|
| 50 | S CCCNT=0 | 
|---|
| 51 | F CCIEN=0:0 S CCIEN=$O(^QA(745.4,CCIEN)) Q:'CCIEN  S CC0=$G(^(CCIEN,0)) D | 
|---|
| 52 | . S CCNAME=$P(CC0,"^") | 
|---|
| 53 | . Q:$D(^XTMP("QACMIGR","CC","D",CCIEN)) | 
|---|
| 54 | . S CCDNM=$E(CCNAME,1,20) S:$L(CCNAME)>20 CCDNM=CCDNM_"..." | 
|---|
| 55 | . I $$TXTERR^QACI2C(CCNAME,60,0,1) D  Q | 
|---|
| 56 | .. D ERREF^QACI2C("CC",CCIEN,CCDNM_" - Office or Person Name invalid") Q | 
|---|
| 57 | . S X=$P(CC0,"^",2) I X]"",X'=1,X'=0 D  Q | 
|---|
| 58 | .. D ERREF^QACI2C("CC",CCIEN,CCDNM_" - 'Inactive' flag is invalid") Q | 
|---|
| 59 | . S ^XTMP("QACMIGR","CC","U",CCIEN)=CCIEN_"^"_STATION_"^"_CCNAME_"^"_X | 
|---|
| 60 | . S CCCNT=CCCNT+1 Q | 
|---|
| 61 | S PATSCNT("CC")=CCCNT | 
|---|
| 62 | Q | 
|---|
| 63 | ; | 
|---|
| 64 | BLDFSOS(FSOSIEN,FSOSNAME,QACI0,PATSCNT) ; Check for errors, build data for a single Facility Service or Section | 
|---|
| 65 | Q:$D(^XTMP("QACMIGR","FSOS","E",FSOSIEN)) | 
|---|
| 66 | Q:$D(^XTMP("QACMIGR","FSOS","U",FSOSIEN)) | 
|---|
| 67 | I $$TXTERR^QACI2C(FSOSNAME,50,0,1) D  Q | 
|---|
| 68 | . N Y S Y=$L(FSOSNAME) | 
|---|
| 69 | . S FSOSNAME=$E(FSOSNAME,1,30) I Y>30 S FSOSNAME=FSOSNAME_"..." | 
|---|
| 70 | . D ERREF^QACI2C("FSOS",FSOSIEN,FSOSNAME_" - Name invalid") Q | 
|---|
| 71 | ; Quit if called from ^QACI0 to just print the error report | 
|---|
| 72 | Q:QACI0 | 
|---|
| 73 | ; Quite if fsos has already migrated | 
|---|
| 74 | Q:$D(^XTMP("QACMIGR","FSOS","D",FSOSIEN)) | 
|---|
| 75 | S ^XTMP("QACMIGR","FSOS","U",FSOSIEN)=FSOSIEN_"^"_FSOSNAME | 
|---|
| 76 | S PATSCNT("FSOS")=PATSCNT("FSOS")+1 | 
|---|
| 77 | Q | 
|---|
| 78 | ; | 
|---|
| 79 | ERROC(OLDROC,MSG) ; Record an error on a ROC | 
|---|
| 80 | Q:MSG="" | 
|---|
| 81 | N ERRCNT S ERRCNT=$O(^XTMP("QACMIGR","ROC","E",OLDROC_" ","A"),-1)+1 | 
|---|
| 82 | S ^XTMP("QACMIGR","ROC","E",OLDROC_" ",ERRCNT)=MSG | 
|---|
| 83 | I ERRCNT=1 D | 
|---|
| 84 | . N I S I=$O(^QA(745.1,"B",OLDROC,0)) Q:'I | 
|---|
| 85 | . S X=$P($G(^QA(745.1,I,0)),"^",6) Q:'X | 
|---|
| 86 | . S X=$P($G(^VA(200,X,0)),"^") Q:X="" | 
|---|
| 87 | . S $P(^XTMP("QACMIGR","ROC","E",OLDROC_" ",ERRCNT),"^",2)=X Q | 
|---|
| 88 | Q | 
|---|
| 89 | ; | 
|---|
| 90 | LIST ;; List of valid national issue codes | 
|---|
| 91 | ;;AC01 | 
|---|
| 92 | ;;AC02 | 
|---|
| 93 | ;;AC03 | 
|---|
| 94 | ;;AC04 | 
|---|
| 95 | ;;AC05 | 
|---|
| 96 | ;;AC06 | 
|---|
| 97 | ;;AC07 | 
|---|
| 98 | ;;AC08 | 
|---|
| 99 | ;;AC09 | 
|---|
| 100 | ;;AC10 | 
|---|
| 101 | ;;AC11 | 
|---|
| 102 | ;;AC12 | 
|---|
| 103 | ;;CO01 | 
|---|
| 104 | ;;CO02 | 
|---|
| 105 | ;;CO03 | 
|---|
| 106 | ;;CO04 | 
|---|
| 107 | ;;CP01 | 
|---|
| 108 | ;;ED01 | 
|---|
| 109 | ;;ED02 | 
|---|
| 110 | ;;EM01 | 
|---|
| 111 | ;;EM02 | 
|---|
| 112 | ;;EM03 | 
|---|
| 113 | ;;EV01 | 
|---|
| 114 | ;;EV02 | 
|---|
| 115 | ;;EV03 | 
|---|
| 116 | ;;FI01 | 
|---|
| 117 | ;;IF01 | 
|---|
| 118 | ;;IF02 | 
|---|
| 119 | ;;IF04 | 
|---|
| 120 | ;;IF05 | 
|---|
| 121 | ;;IF06 | 
|---|
| 122 | ;;IF07 | 
|---|
| 123 | ;;IF08 | 
|---|
| 124 | ;;IF09 | 
|---|
| 125 | ;;IF10 | 
|---|
| 126 | ;;LL01 | 
|---|
| 127 | ;;LL02 | 
|---|
| 128 | ;;LL03 | 
|---|
| 129 | ;;LL04 | 
|---|
| 130 | ;;OP01 | 
|---|
| 131 | ;;OP02 | 
|---|
| 132 | ;;PC01 | 
|---|
| 133 | ;;PC02 | 
|---|
| 134 | ;;PR01 | 
|---|
| 135 | ;;PR02 | 
|---|
| 136 | ;;PR03 | 
|---|
| 137 | ;;PR04 | 
|---|
| 138 | ;;RE01 | 
|---|
| 139 | ;;RG01 | 
|---|
| 140 | ;;RG02 | 
|---|
| 141 | ;;RG03 | 
|---|
| 142 | ;;RI01 | 
|---|
| 143 | ;;RI02 | 
|---|
| 144 | ;;RI03 | 
|---|
| 145 | ;;RI04 | 
|---|
| 146 | ;;RI05 | 
|---|
| 147 | ;;SC01 | 
|---|
| 148 | ;;SC02 | 
|---|
| 149 | ;;TR01 | 
|---|
| 150 | ;; | 
|---|