Scénario de test & Cas d'usage
Puntuación de documentos de texto basada en reglas.
Descubrir todas las acciones de textRuleScoreCrea una tabla con informes clínicos simulados. Los textos son más largos para simular un caso de uso con mayor volumen de datos.
| 1 | DATA mycas.clinical_reports; |
| 2 | INFILE DATALINES delimiter='|'; |
| 3 | LENGTH report_id $10 report_text $1000; |
| 4 | INPUT report_id $ report_text $; |
| 5 | DATALINES; |
| 6 | CR-101|Paciente masculino, 45 años, experimentó náuseas y mareos leves tras la administración de 'MedicamentoX'. Los síntomas remitieron en 24 horas. No se observaron otros efectos adversos. |
| 7 | CR-102|Sujeto de prueba femenino, 62 años, reportó dolor de cabeza persistente. Se recomienda monitorización. El fármaco 'MedicamentoY' fue bien tolerado en general. |
| 8 | CR-103|El estudio concluye que 'MedicamentoX' es eficaz, aunque se han documentado casos aislados de erupciones cutáneas. Se necesita más investigación. |
| 9 | CR-104|Sin efectos secundarios notables para el paciente en el grupo de placebo. El estado general es bueno. |
| 10 | ; |
| 11 | RUN; |
| 1 | PROC CAS; |
| 2 | textRuleDevelop.compileConcept |
| 3 | config=' |
| 4 | CONCEPT: FARMACO (RULE:(OR, "MedicamentoX", "MedicamentoY")) |
| 5 | CONCEPT: EFECTO_ADVERSO (RULE:(OR, "náuseas", "mareos", "dolor de cabeza", "erupciones cutáneas")) |
| 6 | ' |
| 7 | casOut={caslib="casuser", name="pharma_liti_model", replace=true}; |
| 8 | RUN; |
| 1 | PROC CAS; |
| 2 | textRuleScore.applyConcept |
| 3 | docId="report_id" |
| 4 | text="report_text" |
| 5 | TABLE={caslib="casuser", name="clinical_reports"} |
| 6 | model={caslib="casuser", name="pharma_liti_model"} |
| 7 | casOut={caslib="casuser", name="pharma_concepts_run1", replace=true} |
| 8 | parseTableOut={caslib="casuser", name="parsed_reports", replace=true}; |
| 9 | RUN; |
| 1 | PROC CAS; |
| 2 | textRuleScore.applyConcept |
| 3 | docId="report_id" |
| 4 | text="report_text" |
| 5 | parseTableIn={caslib="casuser", name="parsed_reports"} |
| 6 | model={caslib="casuser", name="pharma_liti_model"} |
| 7 | casOut={caslib="casuser", name="pharma_concepts_run2", replace=true}; |
| 8 | RUN; |
Se generan dos tablas de resultados, 'pharma_concepts_run1' y 'pharma_concepts_run2', que deben ser idénticas en contenido. La tabla 'parsed_reports' se crea en el paso 2 y se utiliza como entrada en el paso 3. El principal KPI de este escenario sería medir una reducción en el tiempo de ejecución del paso 3 en comparación con el paso 2, validando la eficacia de la caché de pre-análisis.