juarezfranco / export-to-pattern
Utilitário para exportar dados para um padrão específico.
v0.3
2018-12-11 18:26 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-03-29 03:32:42 UTC
README
Utilitário para exportar dados para um arquivo à partir de um layout/padrão específico.
Requisitos
PHP >= 5.3.0
Instalar
composer require juarezfranco/export-to-pattern
Como utilizar
Exemplo de definição do layout
$layout = [
0 => ['nome' => 'NU_LOTE', 'tamanho' => 8, 'preenchimento' => '0'],
1 => ['nome' => 'QT_LOTE', 'tamanho' => 3, 'preenchimento' => '0'],
3 => ['nome' => 'APRES_LOTE', 'tamanho' => 6],
4 => ['nome' => 'SEQ_LOTE', 'tamanho' => 3, 'preenchimento' => '0'],
5 => ['nome' => 'ORG_EMIS_AIH', 'tamanho' => 10],
6 => ['nome' => 'CNES_HOSP', 'tamanho' => 7],
7 => ['nome' => 'MUN_HOSP', 'tamanho' => 6],
8 => ['nome' => 'NU_AIH', 'tamanho' => 13],
9 => ['nome' => 'IDENT_AIH', 'tamanho' => 2, 'validos' => ['01', '03', '05']],
10 => ['nome' => 'ESPEC_AIH', 'tamanho' => 2],
11 => ['nome' => 'FILLER', 'tamanho' => 45, 'preenchimento' => '0'],
12 => ['nome' => 'MOD_INTERN', 'tamanho' => 2, 'preenchimento' => '0', 'validos' => ['02', '03', '04']],
13 => ['nome' => 'SEQ_AIH5', 'tamanho' => 3, 'padrao' => '000'],
14 => ['nome' => 'AIH_PROX', 'tamanho' => 13, 'padrao' => '0000000000000'],
15 => ['nome' => 'AIH_ANT', 'tamanho' => 13, 'padrao' => '0000000000000'],
16 => ['nome' => 'DT_EMISSAO', 'tamanho' => 8],
17 => ['nome' => 'DT_INTERN', 'tamanho' => 8],
18 => ['nome' => 'DT_SAIDA', 'tamanho' => 8],
19 => ['nome' => 'PROC_SOLICITADO', 'tamanho' => 10],
20 => ['nome' => 'ST_MUDAPROC', 'tamanho' => 1, 'validos' => ['1', '2']],
21 => ['nome' => 'PROC_REALIZADO', 'tamanho' => 10],
22 => ['nome' => 'CAR_INTERN', 'tamanho' => 2],
23 => ['nome' => 'MOT_SAIDA', 'tamanho' => 2],
24 => ['nome' => 'IDENT_MED_SOL', 'tamanho' => 1, 'validos' => ['1', '2']],
25 => ['nome' => 'DOC_MED_SOL', 'tamanho' => 15, 'preenchimento' => ' ', 'str_pad_type' => STR_PAD_RIGHT],
26 => ['nome' => 'IDENT_MED_RESPO', 'tamanho' => 1, 'validos' => ['1', '2']],
27 => ['nome' => 'DOC_MED_RESP', 'tamanho' => 15, 'preenchimento' => ' ', 'str_pad_type' => STR_PAD_RIGHT],
28 => ['nome' => 'IDENT_DIRCLINICO', 'tamanho' => 1, 'validos' => ['1', '2']],
29 => ['nome' => 'DOC_DIRCLINICO', 'tamanho' => 15, 'preenchimento' => ' ', 'str_pad_type' => STR_PAD_RIGHT],
30 => ['nome' => 'IDENT_AUTORIZ', 'tamanho' => 1, 'validos' => ['1', '2']],
31 => ['nome' => 'DOC_AUTORIZ', 'tamanho' => 15],
32 => ['nome' => 'DIAG_PRIN', 'tamanho' => 4],
33 => ['nome' => 'FILLER', 'tamanho' => 4, 'preenchimento' => '0'],
34 => ['nome' => 'FILLER', 'tamanho' => 4, 'preenchimento' => '0'],
35 => ['nome' => 'FILLER', 'tamanho' => 4, 'preenchimento' => '0'],
36 => ['nome' => 'FILLER', 'tamanho' => 3, 'preenchimento' => '0'],
37 => ['nome' => 'NM_PACIENTE', 'tamanho' => 70, 'function' => 'remover_caracteres_especiais', 'str_pad_type' => STR_PAD_RIGHT],
38 => ['nome' => 'DT_NASC_PAC', 'tamanho' => 8],
39 => ['nome' => 'SEXO_PAC', 'tamanho' => 1],
40 => ['nome' => 'RACA/COR', 'tamanho' => 2, 'validos' => ['01', '02', '03', '04', '05', '99'], 'padrao' => '99'],
41 => ['nome' => 'NM_MAE_PAC', 'tamanho' => 70, 'function' => 'remover_caracteres_especiais', 'str_pad_type' => STR_PAD_RIGHT],
42 => ['nome' => 'NM_RESP_PAC', 'tamanho' => 70, 'function' => 'remover_caracteres_especiais', 'str_pad_type' => STR_PAD_RIGHT],
43 => ['nome' => 'TP_DOC_PAC', 'tamanho' => 1, 'validos' => ['1', '2', '3', '4', '5', '6']],
44 => ['nome' => 'ETNIA_INDIGENA', 'tamanho' => 4, 'preenchimento' => '0'],
45 => ['nome' => 'COD_SOL_LIB', 'tamanho' => 5],
46 => ['nome' => 'FILLER', 'tamanho' => 2, 'preenchimento' => '0'],
47 => ['nome' => 'NU_CNS', 'tamanho' => 15],
48 => ['nome' => 'NAC_PAC', 'tamanho' => 3, 'padrao' => '010'],
49 => ['nome' => 'TP_LOGRADOURO', 'tamanho' => 3],
50 => ['nome' => 'LOGR_PAC', 'tamanho' => 50, 'function' => 'remover_caracteres_especiais', 'str_pad_type' => STR_PAD_RIGHT],
51 => ['nome' => 'NU_END_PAC', 'tamanho' => 7],
52 => ['nome' => 'COMPL_END_PAC', 'tamanho' => 15, 'function' => 'remover_caracteres_especiais', 'str_pad_type' => STR_PAD_RIGHT],
53 => ['nome' => 'BAIRRO_PAC', 'tamanho' => 30, 'function' => 'remover_caracteres_especiais', 'str_pad_type' => STR_PAD_RIGHT],
54 => ['nome' => 'COD_MUN_END_PAC', 'tamanho' => 6],
55 => ['nome' => 'UF_PAC', 'tamanho' => 2],
56 => ['nome' => 'CEP_PAC', 'tamanho' => 8],
57 => ['nome' => 'NU_PRONTUARIO', 'tamanho' => 15, 'preenchimento' => '0'],
58 => ['nome' => 'NU_ENFERMARIA', 'tamanho' => 4],
59 => ['nome' => 'NU_LEITO', 'tamanho' => 4],
// Procedimento secundários/especiais
60 => ['nome' => 'PROCEDIMENTOS', 'loop' => true, 'range' => 9, 'layout' =>
[
61 => ['nome' => 'IN_PROF', 'tamanho' => 1, 'validos' => ['0', '1', '2'], 'padrao' => '0', 'preenchimento' => '0'],
62 => ['nome' => 'IDENT_PROF', 'tamanho' => 15, 'preenchimento' => '0'],
63 => ['nome' => 'CBO_PROF', 'tamanho' => 6, 'preenchimento' => '0'],
64 => ['nome' => 'IN_EQUIPE', 'tamanho' => 1, 'validos' => ['0', '1', '2', '3', '4', '5', '6'], 'padrao' => '0'],
65 => ['nome' => 'IN_SERVICO', 'tamanho' => 1, 'validos' => ['0', '3', '5'], 'padrao' => '0'],
66 => ['nome' => 'IDENT_SERVICO', 'tamanho' => 14], // ?
67 => ['nome' => 'IN_EXECUTOR', 'tamanho' => 1, 'validos' => ['1', '2', '3', '4', '5']],
68 => ['nome' => 'IDENT_EXECUTOR', 'tamanho' => 15, 'preenchimento' => ' ', 'str_pad_type' => STR_PAD_RIGHT],
69 => ['nome' => 'COD_PROCED', 'tamanho' => 10],
70 => ['nome' => 'QTD_PROCED', 'tamanho' => 3, 'preenchimento' => '0', 'str_pad_type' => STR_PAD_LEFT],
71 => ['nome' => 'CMPT', 'tamanho' => 6], // ?
72 => ['nome' => 'SERVICO', 'tamanho' => 3, 'padrao' => '000'],
73 => ['nome' => 'CLASSIFICACAO', 'tamanho' => 3, 'padrao' => '000'],
]
],
74 => ['nome' => 'FILLER', 'tamanho' => 19, 'preenchimento' => '0'],
75 => ['nome' => 'SAIDA_UTINEO', 'tamanho' => 1, 'validos' => ['0', '1', '2', '3']],
76 => ['nome' => 'PESO_UTINEO', 'tamanho' => 4],
77 => ['nome' => 'MESGEST_UTINEO', 'tamanho' => 1],
78 => ['nome' => 'CNPJ_EMPREG', 'tamanho' => 14, 'regex' => '/[^0-9]/'],
79 => ['nome' => 'CBOR', 'tamanho' => 6],
80 => ['nome' => 'CNAER', 'tamanho' => 3],
81 => ['nome' => 'TP_VINCPREV', 'tamanho' => 1, 'validos' => ['1', '2', '3', '4', '5', '6']],
82 => ['nome' => 'QT_VIVOS', 'tamanho' => 1],
83 => ['nome' => 'QT_MORTOS', 'tamanho' => 1],
84 => ['nome' => 'QT_ALTA', 'tamanho' => 1],
85 => ['nome' => 'QT_TRANSF', 'tamanho' => 1],
86 => ['nome' => 'QT_OBITO', 'tamanho' => 1],
87 => ['nome' => 'FILLER', 'tamanho' => 10, 'preenchimento' => '0'],
88 => ['nome' => 'QT_FILHOS', 'tamanho' => 2],
89 => ['nome' => 'GRAU_INSTRU', 'tamanho' => 1, 'validos' => ['1', '2', '3', '4']],
90 => ['nome' => 'CID_INDICACAO', 'tamanho' => 4],
91 => ['nome' => 'TP_CONTRACEP1', 'tamanho' => 2, 'validos' => ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']],
92 => ['nome' => 'TP_CONTRACEP2', 'tamanho' => 2, 'validos' => ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']],
93 => ['nome' => 'ST_GESTRISCO', 'tamanho' => 1, 'validos' => ['0', '1']],
94 => ['nome' => 'RESERVADO', 'tamanho' => 35, 'preenchimento' => '0'],
95 => ['nome' => 'NU_PRENATAL', 'tamanho' => 12, 'preenchimento' => '0'],
96 => ['nome' => 'NU_DOC_PAC', 'tamanho' => 32, 'preenchimento' => ' ', 'str_pad_type' => STR_PAD_RIGHT],
97 => ['nome' => 'PACIENTE_TEL_DDD', 'tamanho' => 2, 'preenchimento' => '0', 'regex' => '/[^0-9]/'],
98 => ['nome' => 'PACIENTE_TEL_NUM', 'tamanho' => 9, 'preenchimento' => '0', 'str_pad_type' => STR_PAD_LEFT, 'regex' => '/[^0-9]/'],
99 => ['nome' => 'JUSTIFICATINA_CNS', 'tamanho' => 50, 'function' => 'remover_caracteres_especiais'],
100 => ['nome' => 'DIAG_SEC_1', 'tamanho' => 4],
101 => ['nome' => 'DIAG_SEC_1_CLASS', 'tamanho' => 1, 'padrao' => '0', 'validos' => ['0', '1', '2']],
102 => ['nome' => 'DIAG_SEC_2', 'tamanho' => 4],
103 => ['nome' => 'DIAG_SEC_2_CLASS', 'tamanho' => 1, 'padrao' => '0', 'validos' => ['0', '1', '2']],
104 => ['nome' => 'DIAG_SEC_3', 'tamanho' => 4],
105 => ['nome' => 'DIAG_SEC_3_CLASS', 'tamanho' => 1, 'padrao' => '0', 'validos' => ['0', '1', '2']],
106 => ['nome' => 'DIAG_SEC_4', 'tamanho' => 4],
107 => ['nome' => 'DIAG_SEC_4_CLASS', 'tamanho' => 1, 'padrao' => '0', 'validos' => ['0', '1', '2']],
108 => ['nome' => 'DIAG_SEC_5', 'tamanho' => 4],
109 => ['nome' => 'DIAG_SEC_5_CLASS', 'tamanho' => 1, 'padrao' => '0', 'validos' => ['0', '1', '2']],
110 => ['nome' => 'DIAG_SEC_6', 'tamanho' => 4],
111 => ['nome' => 'DIAG_SEC_6_CLASS', 'tamanho' => 1, 'padrao' => '0', 'validos' => ['0', '1', '2']],
112 => ['nome' => 'DIAG_SEC_7', 'tamanho' => 4],
113 => ['nome' => 'DIAG_SEC_7_CLASS', 'tamanho' => 1, 'padrao' => '0', 'validos' => ['0', '1', '2']],
114 => ['nome' => 'DIAG_SEC_8', 'tamanho' => 4],
115 => ['nome' => 'DIAG_SEC_8_CLASS', 'tamanho' => 1, 'padrao' => '0', 'validos' => ['0', '1', '2']],
116 => ['nome' => 'DIAG_SEC_9', 'tamanho' => 4],
117 => ['nome' => 'DIAG_SEC_9_CLASS', 'tamanho' => 1, 'padrao' => '0', 'validos' => ['0', '1', '2']],
118 => ['nome' => 'FILLER', 'tamanho' => 165, 'preenchimento' => '0']
];
Exemplo de uso
$exportador = new \JuarezFranco\ExportToPattern\Exportador();
$exportador->fopen('arquivo.txt');
$exportador->gerarLinhas($layout, $dados); // array de dados deve implementar \JuarezFranco\ExportToPattern\GetAtributoParaExportacaoContract
$exportador->fclose();
return $exportador->getCaminhoDoArquivo();
Exemplo classe que implementa \JuarezFranco\ExportToPattern\GetAtributoParaExportacaoContract deve escrever o método getAtributoParaExportacao
public function getAtributoParaExportacao($nomeDoAtributo)
{
switch ($nomeDoAtributo) {
case 'APRES_LOTE':
return $this->competencia_da_apresentacao;
case 'CNES_HOSP':
return $this->estabelecimentoDeSaude->cnes;
case 'ORG_EMIS_AIH':
return $this->codigo_do_orgao_emissor;
break;
// restantes dos atributos aqui
}
}
License
The MIT License (MIT)